Мені потрібно видалити один стовпець з кадру даних. Маючи @ стовпець з тим же ім'ям. (Потрібно видалити лише один, а інший - для подальшого використання).
input:
sno age psk psk
1 12 a4 a4
output:
sno age psk
1 12 a4
Відповіді:
0 для відповіді № 1RDD
є шлях (але потрібно знати індекс стовпців повторюваних стовпців для видалення повторюваних стовпців dataframe
)
Якщо у вас є dataframe
з дубльованими стовпцями як
+---+---+---+---+
|sno|age|psk|psk|
+---+---+---+---+
|1 |12 |a4 |a4 |
+---+---+---+---+
Ви знаєте, що індекс двох останніх стовпців є дублікатами.
Наступний крок полягає в тому, щоб ви мали назви стовпців з видаленими дублікатами та форму schema
val columns = df.columns.toSet.toArray
val schema = StructType(columns.map(name => StructField(name, StringType, true)))
Життєва частина полягає в перетворенні dataframe
до rdd
і видалити необхідний індекс стовпця (тут це 4-й)
val rdd = df.rdd.map(row=> Row.fromSeq(Seq(row(0).toString, row(1).toString, row(2))))
Остаточним кроком є перетворення rdd
до dataframe
використовуючи schema
sqlContext.createDataFrame(rdd, schema).show(false)
які повинні дати вам
+---+---+---+
|sno|age|psk|
+---+---+---+
|1 |12 |a4 |
+---+---+---+
Я сподіваюся, що відповідь корисна