【发布时间】:2015-07-17 17:11:19
【问题描述】:
我正在使用 PySpark 在我的 Hive 表上执行 SparkSQL。
records = sqlContext.sql("SELECT * FROM my_table")
检索表的内容。
当我将过滤器参数用作字符串时,它可以正常工作:
records.filter("field_i = 3")
但是,当我尝试使用过滤器方法时,如文档所述 here
records.filter(records.field_i == 3)
我遇到了这个错误
py4j.protocol.Py4JJavaError: An error occurred while calling o19.filter.
: org.apache.spark.sql.AnalysisException: resolved attributes field_i missing from field_1,field_2,...,field_i,...field_n
尽管这个 field_i 列显然存在于 DataFrame 对象中。
我更喜欢使用第二种方式,因为我需要使用 Python 函数来执行记录和字段操作。
我在 Cloudera 快速入门 CDH-5.4.0 和 Python 2.6 中使用 Spark 1.3.0。
【问题讨论】:
标签: apache-spark pyspark