Припустимо, що ми працюємо з наступним поданням даних (два стовпці k
та v
, де k
містяться три записи, два унікальних:
+---+---+
| k| v|
+---+---+
|foo| 1|
|bar| 2|
|foo| 3|
+---+---+
З фреймом даних Pandas:
import pandas as pd
p_df = pd.DataFrame([("foo", 1), ("bar", 2), ("foo", 3)], columns=("k", "v"))
p_df['k'].unique()
Це повертає ndarray
, тобтоarray(['foo', 'bar'], dtype=object)
Ви запитали "альтернативу pyspark dataframe для pandas df ['col']. Unique ()". Тепер, враховуючи такий фрейм даних Spark:
s_df = sqlContext.createDataFrame([("foo", 1), ("bar", 2), ("foo", 3)], ('k', 'v'))
Якщо ви хочете отримати той самий результат від Spark, тобто ndarray
, використовуйте toPandas()
:
s_df.toPandas()['k'].unique()
Крім того, якщо вам не потрібно ndarray
конкретно і вам потрібен лише список унікальних значень стовпця k
:
s_df.select('k').distinct().rdd.map(lambda r: r[0]).collect()
Нарешті, ви також можете використовувати розуміння списку наступним чином:
[i.k for i in s_df.select('k').distinct().collect()]