列名称为空白时如何使用pyspark过滤器

时间:2019-06-12 03:26:31

标签: pyspark pyspark-sql

我的pyspark数据框有几列,其中有空白,例如内向交货(注意中间的空格)。当我尝试使用.filter进行比较时,出现错误。我不想重新定义删除空格的模式,因为我的表很大,几乎所有表名都具有相同的空间。是否可以快速使用名称为空的过滤器

dfjoin.where('Inbound Delivery = 0090043373').show()

错误


Py4JJavaError Traceback(最近一次通话) 〜\ Desktop \ spark \ spark-2.4.3-bin-hadoop2.7 \ python \ pyspark \ sql \ utils.py in deco(* a,** kw)      62试试: ---> 63返回f(* a,** kw)      64,除了py4j.protocol.Py4JJavaError如e:

〜\ Desktop \ spark \ spark-2.4.3-bin-hadoop2.7 \ python \ lib \ py4j-0.10.7-src.zip \ py4j \ protocol.py in get_return_value(answer,gateway_client,target_id,名称)     327“调用{0} {1} {2}时发生错误。\ n”。 -> 328格式(target_id,“。”,名称),值)     329其他:

Py4JJavaError:调用o1424.filter时发生错误。 :org.apache.spark.sql.catalyst.parser.ParseException: 输入'='预期不匹配(第1行,位置16)

1 个答案:

答案 0 :(得分:0)

例如,这种方式:

>>> df = spark.createDataFrame([("a",), ("b",)], ["column name"])
>>> df.show(False)
+-----------+
|column name|
+-----------+
|          a|
|          b|
+-----------+
>>> from pyspark.sql.functions import col
>>> df.filter(col("column name") == 'b').show()
+-----------+
|column name|
+-----------+
|          b|
+-----------+