繁体   English   中英

在云 Dataproc 中的 Pyspark 作业上使用 DeltaTable.forPath 时出错

[英]Error Using DeltaTable.forPath on Pyspark Job in cloud Dataproc

我正在 Dataproc 集群上执行一些 pyspark 作业。 直到昨天一切都很顺利。 但是,今天我在使用命令 DeltaTable.forPath(sparkSession, path) 读取增量表并更新它时开始出现此错误。

Traceback (most recent call last):
  File "/tmp/job-0eb2543e/cohort_ka.py", line 146, in <module>
    main()
  File "/tmp/job-0eb2543e/cohort_ka.py", line 128, in main
    persisted = DeltaTable.forPath(spark, destination)
  File "/opt/conda/default/lib/python3.8/site-packages/delta/tables.py", line 387, in forPath
    jdt = jvm.io.delta.tables.DeltaTable.forPath(jsparkSession, path, hadoopConf)
  File "/usr/lib/spark/python/lib/py4j-0.10.9-src.zip/py4j/java_gateway.py", line 1304, in __call__
  File "/usr/lib/spark/python/lib/pyspark.zip/pyspark/sql/utils.py", line 111, in deco
  File "/usr/lib/spark/python/lib/py4j-0.10.9-src.zip/py4j/protocol.py", line 330, in get_return_value
py4j.protocol.Py4JError: An error occurred while calling z:io.delta.tables.DeltaTable.forPath. Trace:
py4j.Py4JException: Method forPath([class org.apache.spark.sql.SparkSession, class java.lang.String, class java.util.HashMap]) does not exist
    at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:318)
    at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:339)
    at py4j.Gateway.invoke(Gateway.java:276)
    at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
    at py4j.commands.CallCommand.execute(CallCommand.java:79)
    at py4j.GatewayConnection.run(GatewayConnection.java:238)
    at java.lang.Thread.run(Thread.java:750)

配置:dataproc 集群映像:2.0-debian10

增量表版本:delta-core_2.12-1.0.0.jar

从以下位置下载 delta jar 文件: https://repo1.maven.org/maven2/io/delta/delta-core_2.12/1.0.0/

星火版本:3.1

尝试使用命令 DeltaTable.forPath 在运行 o Google Dataproc 的 pyspark 作业中读取 deltatable。 期望读取 DeltaTable。 导致错误:py4j.Py4JException: Method forPath([class org.apache.spark.sql.SparkSession, class java.lang.String, class.class.88213828469不存在]utilHMapash不存在]

已经找到问题了。 delta-spark python package 昨天有更新,创建集群时没有设置版本。 只需将命令更改为 python -m pip install delta-spark==2.1.1 即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM