我使用Spark 2.3.1,并且想使用toPandas()
(要使用unique()
)。
当我在pyspark
中执行以下代码时:
df.toPandas()['column_01'].unique()
我面临以下异常:
>>> df.toPandas()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/xxx/spark/python/pyspark/sql/dataframe.py", line 2075, in toPandas
require_minimum_pandas_version()
File "/Users/xxx/spark/python/pyspark/sql/utils.py", line 129, in require_minimum_pandas_version
"it was not found." % minimum_pandas_version)
ImportError: Pandas >= 0.19.2 must be installed; however, it was not found.
如何解决?
答案 0 :(得分:2)
您需要安装pandas:pip install pandas
。
另外,要获取唯一值,您无需转换为pandas数据框。您可以在spark数据框中实现该目标。
df.select('column_01').distinct()
答案 1 :(得分:1)
我知道这是一个老问题,但是最近在将pyspark作业部署到Google Dataproc时遇到了同样的问题。适用于我的解决方案如下:
创建集群时,请指定以下内容:
--metadata 'PIP_PACKAGES=pandas==0.23.0'