Como concatenar colunas no Pyspark DataFrame

Como concatenar colunas no Pyspark DataFrame
No Python, Pyspark é um módulo Spark usado para fornecer um tipo semelhante de processamento como o Spark usando o DataFrame. Podemos concatenar duas ou mais colunas em um quadro de dados usando dois métodos. Eles são concat () e concat_ws (). Estes são os métodos disponíveis no Pyspark.SQL.Módulo de funções. Antes de conhecer esses métodos, vamos criar um pyspark dataframe.

Exemplo
Neste exemplo, criaremos o Pyspark DataFrame com 5 linhas e 6 colunas e exibiremos -o usando o método show ().

# importe o módulo Pyspark
Importar Pyspark
# Importar SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
# Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Crie dados dos alunos com 5 linhas e 6 atributos
alunos = [
'rollno': '001', 'nome': 'sravan', 'idade': 23,
'Altura': 5.79, 'Peso': 67, 'Endereço': 'Guntur',
'rollno': '002', 'nome': 'ojaswi', 'idade': 16,
'Altura': 3.79, 'Peso': 34, 'Endereço': 'Hyd',
'rollno': '003', 'nome': 'gnanesh chowdary', 'idade': 7,
'Altura': 2.79, 'Peso': 17, 'Endereço': 'Patna',
'rollno': '004', 'nome': 'rohith', 'idade': 9,
'Altura': 3.69, 'Peso': 28, 'Endereço': 'Hyd',
'rollno': '005', 'nome': 'sridevi', 'idade': 37,
'Altura': 5.59, 'Peso': 54, 'Endereço': 'Hyd']
# Crie o DataFrame
df = spark_app.CreatedAtAframe (estudantes)
# Exibir dataframe
df.mostrar()

Saída:

Pyspark - Concat ()

Concat () ingressará duas ou mais colunas no quadro de dados Pyspark dado e adicionará esses valores a uma nova coluna.

Usando o método select (), podemos ver a coluna concatenada e, usando um método Alias ​​(), podemos nomear a coluna concatenada.

Sintaxe

quadro de dados.Selecione (Concat (colunas,…).Alias ​​("new_column"))

onde,

  1. DataFrame é a entrada Pyspark DataFrame
  2. concat () - será necessário várias colunas a serem concatenadas - a coluna será representada usando o DataFrame.coluna
  3. new_column é o nome da coluna para a coluna concatenada.

Exemplo 1
Neste exemplo, concatenaremos as colunas de altura e peso em uma nova coluna e nomearemos a coluna como índice do corpo. Por fim, selecionaremos apenas esta coluna e exibiremos o DataFrame usando o método show ().

#import o módulo Pyspark
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#import função concat
de Pyspark.SQL.funções importam concat
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Crie dados dos alunos com 5 linhas e 6 atributos
alunos = [
'rollno': '001', 'nome': 'sravan', 'idade': 23,
'Altura': 5.79, 'Peso': 67, 'Endereço': 'Guntur',
'rollno': '002', 'nome': 'ojaswi', 'idade': 16,
'Altura': 3.79, 'Peso': 34, 'Endereço': 'Hyd',
'rollno': '003', 'nome': 'gnanesh chowdary', 'idade': 7,
'Altura': 2.79, 'Peso': 17, 'Endereço': 'Patna',
'rollno': '004', 'nome': 'rohith', 'idade': 9,
'Altura': 3.69, 'Peso': 28, 'Endereço': 'Hyd',
'rollno': '005', 'nome': 'sridevi', 'idade': 37,
'Altura': 5.59, 'Peso': 54, 'Endereço': 'Hyd']
# Crie o DataFrame
df = spark_app.CreatedAtAframe (estudantes)
# Concatenando altura e peso em uma nova coluna chamada - "Índice do corpo"
df.Selecione (Concat (df.altura, df.peso).Alias ​​("Índice do corpo")).mostrar()

Saída:

Exemplo 2
Neste exemplo, concatizaremos as colunas de Rollno, Name e Endereço em uma nova coluna e nomeará a coluna como detalhes. Por fim, selecionaremos apenas esta coluna e exibiremos o DataFrame usando o método show ().

#import o módulo Pyspark
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#import função concat
de Pyspark.SQL.funções importam concat
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Crie dados dos alunos com 5 linhas e 6 atributos
alunos = [
'rollno': '001', 'nome': 'sravan', 'idade': 23,
'Altura': 5.79, 'Peso': 67, 'Endereço': 'Guntur',
'rollno': '002', 'nome': 'ojaswi', 'idade': 16,
'Altura': 3.79, 'Peso': 34, 'Endereço': 'Hyd',
'rollno': '003', 'nome': 'gnanesh chowdary', 'idade': 7,
'Altura': 2.79, 'Peso': 17, 'Endereço': 'Patna',
'rollno': '004', 'nome': 'rohith', 'idade': 9,
'Altura': 3.69, 'Peso': 28, 'Endereço': 'Hyd',
'rollno': '005', 'nome': 'sridevi', 'idade': 37,
'Altura': 5.59, 'Peso': 54, 'Endereço': 'Hyd']
# Crie o DataFrame
df = spark_app.CreatedAtAframe (estudantes)
# Concatenando Rollno, nome e endereço em uma nova coluna chamada - "Detalhes"
df.Selecione (Concat (df.rolno, df.nome, df.endereço).Alias ​​("Detalhes"))).mostrar()

Saída:

Pyspark - concat_ws ()

Concat_ws () ingressará duas ou mais colunas no quadro de dados Pyspark e adicionará esses valores a uma nova coluna. Ele separará os valores de cada coluna com um separador.

Usando o método select (), podemos ver a coluna concatenada e, usando um método Alias ​​(), podemos nomear a coluna concatenada.

Sintaxe

quadro de dados.Selecione (Concat ("separador", colunas,…).Alias ​​("new_column"))

onde,

  1. DataFrame é a entrada Pyspark DataFrame
  2. concat () - será necessário várias colunas a serem concatenadas - a coluna será representada usando o DataFrame.coluna
  3. new_column é o nome da coluna para a coluna concatenada.
  4. O separador pode ser algo como espaço, caráter especial, etc.

Exemplo 1
Neste exemplo, concatenaremos as colunas de altura e peso em uma nova coluna e nomearemos a coluna como índice corporal separado com “_.Finalmente, selecionaremos apenas esta coluna e exibiremos o DataFrame usando o método show ().

#import o módulo Pyspark
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#import concat_ws função
de Pyspark.SQL.funções importam concat_ws
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Crie dados dos alunos com 5 linhas e 6 atributos
alunos = [
'rollno': '001', 'nome': 'sravan', 'idade': 23,
'Altura': 5.79, 'Peso': 67, 'Endereço': 'Guntur',
'rollno': '002', 'nome': 'ojaswi', 'idade': 16,
'Altura': 3.79, 'Peso': 34, 'Endereço': 'Hyd',
'rollno': '003', 'nome': 'gnanesh chowdary', 'idade': 7,
'Altura': 2.79, 'Peso': 17, 'Endereço': 'Patna',
'rollno': '004', 'nome': 'rohith', 'idade': 9,
'Altura': 3.69, 'Peso': 28, 'Endereço': 'Hyd',
'rollno': '005', 'nome': 'sridevi', 'idade': 37,
'Altura': 5.59, 'Peso': 54, 'Endereço': 'Hyd']
# Crie o DataFrame
df = spark_app.CreatedAtAframe (estudantes)
# Concatenando altura e peso em uma nova coluna chamada - "Índice do corpo"
df.Selecione (concat_ws ("_", df.altura, df.peso).Alias ​​("Índice do corpo")).mostrar()

Saída:

Exemplo 2
Neste exemplo, concatenaremos as colunas de Rollno, Name e Endereço em uma nova coluna e nomeará a coluna como detalhes separados por “***.Finalmente, selecionaremos apenas esta coluna e exibiremos o DataFrame usando o método show ().

#import o módulo Pyspark
Importar Pyspark
#Import SparkSession para criar uma sessão
de Pyspark.SQL Import SparkSession
#import concat_ws função
de Pyspark.SQL.funções importam concat_ws
#Crie um aplicativo chamado Linuxhint
Spark_App = SparkSession.construtor.AppName ('Linuxhint').getorcreate ()
# Crie dados dos alunos com 5 linhas e 6 atributos
alunos = [
'rollno': '001', 'nome': 'sravan', 'idade': 23,
'Altura': 5.79, 'Peso': 67, 'Endereço': 'Guntur',
'rollno': '002', 'nome': 'ojaswi', 'idade': 16,
'Altura': 3.79, 'Peso': 34, 'Endereço': 'Hyd',
'rollno': '003', 'nome': 'gnanesh chowdary', 'idade': 7,
'Altura': 2.79, 'Peso': 17, 'Endereço': 'Patna',
'rollno': '004', 'nome': 'rohith', 'idade': 9,
'Altura': 3.69, 'Peso': 28, 'Endereço': 'Hyd',
'rollno': '005', 'nome': 'sridevi', 'idade': 37,
'Altura': 5.59, 'Peso': 54, 'Endereço': 'Hyd']
# Crie o DataFrame
df = spark_app.CreatedAtAframe (estudantes)
# Concatenando Rollno, nome e endereço em uma nova coluna chamada - "Detalhes"
df.Selecione (concat_ws ("***", df.rolno, df.nome, df.endereço).Alias ​​("Detalhes"))).mostrar()

Saída:

Conclusão

Podemos concatenar duas ou mais colunas usando métodos concat () e concat_ws (). A principal diferença entre os dois métodos é que podemos adicionar um separador no método concat_ws ().