【问题标题】:how do use pyspark filter when column name has blank当列名为空白时如何使用 pyspark 过滤器
【发布时间】:2019-10-26 12:01:22
【问题描述】:

我的 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 as 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, name ) 327 “调用 {0}{1}{2} 时出错。\n”。 --> 328 格式(target_id, ".", name), value) 329 其他:

Py4JJavaError:调用 o1424.filter 时出错。 :org.apache.spark.sql.catalyst.parser.ParseException: 不匹配的输入 '=' 期望(第 1 行,第 16 行)

【问题讨论】:

    标签: pyspark pyspark-sql


    【解决方案1】:

    例如这样:

    >>> 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|
    +-----------+
    

    【讨论】:

      猜你喜欢
      • 2015-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-13
      • 1970-01-01
      相关资源
      最近更新 更多