Выбор или удаление повторяющихся столбцов из фрейма данных spark - PullRequest
0 голосов
/ 06 сентября 2018

С учетом искрового фрейма данных с дублирующимися именами столбцов (например, A) для , которые я не могу изменить в восходящем или исходном , как выбрать, удалить или переименовать один из столбцов, чтобы Я могу получить значения столбцов?

df.select('A') показывает мне неоднозначную ошибку столбца, как и filter, drop и withColumnRenamed. Как выбрать один из столбцов?

1 Ответ

0 голосов
/ 06 сентября 2018

Единственный способ, который я нашел за несколько часов исследований, - переименовать набор столбцов, а затем создать еще один кадр данных с новым набором в качестве заголовка.

Например, если у вас есть:

>>> import pyspark
>>> from pyspark.sql import SQLContext
>>> 
>>> sc = pyspark.SparkContext()
>>> sqlContext = SQLContext(sc)
>>> df = sqlContext([(1, 2, 3), (4, 5, 6)], ['a', 'b', 'a'])
DataFrame[a: bigint, b: bigint, a: bigint]
>>> df.columns
['a', 'b', 'a']
>>> df2 = df.toDF('a', 'b', 'c')
>>> df2.columns
['a', 'b', 'c']

Вы можете получить список столбцов, используя df.columns, а затем использовать цикл для переименования любых дубликатов, чтобы получить новый список столбцов (не забудьте передать функцию *new_col_list вместо new_col_list в toDF иначе это приведет к ошибке неверного подсчета).

...