python - PySpark DataFrame 无法删除重复项

标签 python apache-spark pyspark apache-spark-sql pyspark-sql

您好,我创建了一个 spark 数据框,我正在尝试删除重复项:

df.drop_duplicates(subset='id')

我收到以下错误:

Py4JError: An error occurred while calling z:org.apache.spark.api.python.PythonUtils.toSeq. Trace:
py4j.Py4JException: Method toSeq([class java.lang.String]) does not exist
    at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:335)
    at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:360)
    at py4j.Gateway.invoke(Gateway.java:254)
    at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:133)
    at py4j.commands.CallCommand.execute(CallCommand.java:79)
    at py4j.GatewayConnection.run(GatewayConnection.java:209)
    at java.lang.Thread.run(Thread.java:745)

正在使用 操作系统 10.11.4, Spark 1.6.1

我像这样运行了一个 jupyter notebook

PYSPARK_DRIVER_PYTHON=jupyter PYSPARK_DRIVER_PYTHON_OPTS='notebook' pyspark

是否还有其他一些我可能错过或弄错的配置?

最佳答案

drop_duplicates/dropDuplicates 的参数应该是名称的集合,Java 等效项可以转换为 Scala Seq,而不是单个字符串.您可以使用列表:

df.drop_duplicates(subset=['id'])

或一个元组:

df.drop_duplicates(subset=('id', ))

关于python - PySpark DataFrame 无法删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37084979/

相关文章:

apache-spark - 使用 pyspark 中的列索引删除同名列

python - 如何在RDD中选择每个key时间最久的数据?

python - 尝试在需要它的 python 脚本中定义 DJANGO_SETTINGS_MODULE 时出现错误

hadoop - Spark 无法检索特定列中的所有 Hbase 数据

mysql - 基于另一个表 PySpark/SQL 的日期时间列聚合列

apache-spark - 在PySpark中按一列中的不同值过滤行

apache-spark - 如何在 PySpark ALS 中使用长用户 ID

Python模块名称冲突

python - 使用 Python 正则表达式提取带连字符的电话号码

python - 包含python3中JSON数据的不同压缩方式