#list #apache-spark #pyspark
#Список #apache-spark #pyspark
Вопрос:
Мне нужно извлечь все уникальные значения столбца, такие же, как pandas, без жесткого кодирования имени столбца. Не могли бы вы помочь, как это сделать?
Пример:
p_k = 'Projectnum'
если я дам вот так:
uni_val = [x.Projectnum for x in spark_df.select('Projectnum').distinct().collect()]
uni_val = ['SR0480-000']
но я не хочу жестко кодировать column_name. Поэтому я сохранил column_name в переменной p_k. Но как вставить в список?
uni_val = [x.pk for x in spark_df.select(pk).distinct().collect()]
Это выдает ошибку.
Ответ №1:
Вы должны использовать x[0]
, а не x.p_k
потому collect
, что возвращает объекты строк, к которым можно получить доступ с помощью [0]
, но не .p_k
uni_val = [x[0] for x in spark_df.select(p_k).distinct().collect()]