【问题标题】:Pyspark2 Writing to CSV Issue?Pyspark2 写入 CSV 问题?
【发布时间】:2023-04-02 05:50:01
【问题描述】:

我正在通过命令运行一个py文件:

/opt/cloudera/parcels/SPARK2-2.2.0.cloudera2-1.cdh5.12.0.p0.232957/bin/spark2-submit --jars /home/jsonnt200/geomesa-hbase-spark-runtime_2.11-1.3.5.1cc.jar,/ccri/hbase-site.zip geomesa_klondike_enrichment2.py

这会导致以下错误:

Traceback(最近一次调用最后一次):文件 “/home/jsonnt200/geomesa_klondike_enrichment2.py”,第 6306 行,在 df2_500m.write.option('header', 'true').csv('/user/jsonnt200/klondike_201708_1m_500meter_testEQ_union4') 文件 "/opt/cloudera/parcels/SPARK2-2.1.0.cloudera2-1.cdh5.7.0.p0.171658/lib/spark2/python/pyspark/sql/readwriter.py", 第 711 行,在 csv 中 self._jwrite.csv(路径)文件“/opt/cloudera/parcels/SPARK2-2.1.0.cloudera2-1.cdh5.7.0.p0.171658/lib/spark2/python/lib/py4j-0.10.4-src .zip/py4j/java_gateway.py", 第 1133 行,在 call 文件中 "/opt/cloudera/parcels/SPARK2-2.1.0.cloudera2-1.cdh5.7.0.p0.171658/lib/spark2/python/pyspark/sql/utils.py", 第 79 行,在装饰中 raise IllegalArgumentException(s.split(': ', 1)[1], stackTrace) pyspark.sql.utils.IllegalArgumentException: u'Illegal pattern 组件:XXX'

最大的担忧是如果我通过 ipython 提交这个相同的 py 文件,它会正常运行。关于可能是什么问题的任何想法?不幸的是,我必须使用 spark2-submit 进行隧道传输。

【问题讨论】:

    标签: python csv pyspark


    【解决方案1】:

    您使用的是 Spark 2.2.0,对吗?我在尝试读取 csv 文件时遇到了同样的问题。我认为问题在于timestampFormat 变量。它的默认值为yyyy-MM-dd'T'HH:mm:ss.SSSXXX. Ref。 pyspark.sql documentation.

    当我将其更改为例如timestampFormat="yyyy-MM-dd",我的代码有效。这个post 中也提到了这个问题。希望能帮助到你 :)。

    【讨论】:

    • 我也看到了该帖子并尝试了该解决方案。虽然它对我不起作用,但这似乎是我所期望的,因为我的数据中没有任何时间戳列。你有时间戳列吗?
    • 无论如何它都会失败,因为timestampFormat 的默认值是错误的。我只有日期类型列。如果更改格式值,是否会出现相同的错误?
    • 是的,我试过你的以防万一,但没有收到同样的错误,我现在只是收到一个一般性的失败错误。 File "/opt/cloudera/parcels/SPARK2/lib/spark2/python/lib/py4j-0.10.4-src.zip/py4j/protocol.py", line 319, in get_return_value py4j.protocol.Py4JJavaError: An error occurred while calling o128.csv.
    猜你喜欢
    • 1970-01-01
    • 2021-05-07
    • 1970-01-01
    • 2015-12-10
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多