/ / remover coluna duplicada do dataframe usando scala - scala, apache-spark, dataframe

remover coluna duplicada do dataframe usando scala-scala, apache-spark, dataframe

Eu preciso remover uma coluna do dataframe. Tendo @ coluna no mesmo nome. (Precisa remover apenas um e precisa do outro para uso posterior).

input:

sno age psk psk

1 12 a4 a4

output:

sno age psk

1 12 a4

Respostas:

0 para resposta № 1

RDD é o caminho (mas você precisa saber o índice da coluna das colunas duplicadas para remover colunas duplicadas de volta para dataframe)

Se você tem dataframe com colunas duplicadas como

+---+---+---+---+
|sno|age|psk|psk|
+---+---+---+---+
|1  |12 |a4 |a4 |
+---+---+---+---+

Você sabe que os dois últimos índices da coluna são duplicados.

O próximo passo é ter nomes de colunas com duplicatas removidas e formar schema

val columns = df.columns.toSet.toArray
val schema = StructType(columns.map(name => StructField(name, StringType, true)))

Parte vital é converter o dataframe para rdd e remova o índice de coluna necessário (aqui é o quarto)

val rdd = df.rdd.map(row=> Row.fromSeq(Seq(row(0).toString, row(1).toString, row(2))))

O passo final é converter o rdd para dataframe usando schema

sqlContext.createDataFrame(rdd, schema).show(false)

o que deveria lhe dar

+---+---+---+
|sno|age|psk|
+---+---+---+
|1  |12 |a4 |
+---+---+---+

Espero que a resposta seja útil