Giả sử chúng ta đang làm việc với biểu diễn dữ liệu sau (hai cột k
và v
, trong đó k
chứa ba mục nhập, hai mục duy nhất:
+---+---+
| k| v|
+---+---+
|foo| 1|
|bar| 2|
|foo| 3|
+---+---+
Với khung dữ liệu Pandas:
import pandas as pd
p_df = pd.DataFrame([("foo", 1), ("bar", 2), ("foo", 3)], columns=("k", "v"))
p_df['k'].unique()
Điều này trả về một ndarray
, tức làarray(['foo', 'bar'], dtype=object)
Bạn đã yêu cầu "thay thế khung dữ liệu pyspark cho gấu trúc df ['col']. Unique ()". Bây giờ, với khung dữ liệu Spark sau:
s_df = sqlContext.createDataFrame([("foo", 1), ("bar", 2), ("foo", 3)], ('k', 'v'))
Nếu bạn muốn kết quả tương tự từ Spark, tức là an ndarray
, hãy sử dụng toPandas()
:
s_df.toPandas()['k'].unique()
Ngoài ra, nếu bạn không cần ndarray
cụ thể và chỉ muốn có danh sách các giá trị duy nhất của cột k
:
s_df.select('k').distinct().rdd.map(lambda r: r[0]).collect()
Cuối cùng, bạn cũng có thể sử dụng cách hiểu danh sách như sau:
[i.k for i in s_df.select('k').distinct().collect()]