【发布时间】:2021-01-08 04:08:23
【问题描述】:
我看到了许多与过滤 pyspark 数据帧相关的问题,但尽管我尽了最大努力,我还是无法让任何非 SQL 解决方案发挥作用。
+----------+-------------+-------+--------------------+--------------+---+
|purch_date| purch_class|tot_amt| serv-provider|purch_location| id|
+----------+-------------+-------+--------------------+--------------+---+
|03/11/2017|Uncategorized| -17.53| HOVER | | 0|
|02/11/2017| Groceries| -70.05|1774 MAC'S CONVEN...| BRAMPTON | 1|
|31/10/2017|Gasoline/Fuel| -20| ESSO | | 2|
|31/10/2017| Travel| -9|TORONTO PARKING A...| TORONTO | 3|
|30/10/2017| Groceries| -1.84| LONGO'S # 2| | 4|
这不起作用:
df1 = spark.read.csv("/some/path/to/file", sep=',')\
.filter((col('purch_location')=='BRAMPTON')
这没有用
df1 = spark.read.csv("/some/path/to/file", sep=',')\
.filter(purch_location == 'BRAMPTON')
这个(SQL 表达式)有效,但需要很长时间,我想有一个更快的非 SQL 方法
df1 = spark.read.csv("/some/path/to/file", sep=',')\
.filter(purch_location == 'BRAMPTON')
更新我应该提到我能够使用类似的方法(比 SQL 表达式运行得更快):
df1 = spark.read.csv("/some/path/to/file", sep=',')
df2 = df1.filter(df1.purch_location == "BRAMPTON")
但想了解为什么“管道”/ 连接语法不正确。
【问题讨论】:
标签: python apache-spark filter pyspark apache-spark-sql