Mat*_*ias 8 python apache-spark pyspark spark-dataframe
我正在从HDFS加载数据,我希望通过特定变量进行过滤.但不知何故,Column.isin命令不起作用.它抛出此错误:
TypeError:'Column'对象不可调用
from pyspark.sql.functions import udf, col
variables = ('852-PI-769', '812-HC-037', '852-PC-571-OUT')
df = sqlContext.read.option("mergeSchema", "true").parquet("parameters.parquet")
same_var = col("Variable").isin(variables)
df2 = df.filter(same_var)
Run Code Online (Sandbox Code Playgroud)
架构如下所示:
df.printSchema()
root
|-- Time: timestamp (nullable = true)
|-- Value: float (nullable = true)
|-- Variable: string (nullable = true)
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?PS:这是使用Jupyter笔记本的Spark 1.4.
问题是它isin是在 1.5.0 版本中添加到 Spark 中的,因此在您的 Spark 版本中尚不可用,如此处的文档isin 所示。
Scala API 中有一个类似的函数in,在 1.3.0 中引入,具有类似的功能(输入存在一些差异,因为in只接受列)。在 PySpark 中,会调用此函数inSet。文档中的用法示例:
Run Code Online (Sandbox Code Playgroud)df[df.name.inSet("Bob", "Mike")] df[df.age.inSet([1, 2, 3])]
注意:inSet在 1.5.0 及更高版本中已弃用,isin应在较新版本中使用。
| 归档时间: |
|
| 查看次数: |
20071 次 |
| 最近记录: |