【问题标题】:Error Using DeltaTable.forPath on Pyspark Job in cloud Dataproc在云 Dataproc 中的 Pyspark 作业上使用 DeltaTable.forPath 时出错
【发布时间】:2022-12-07 00:55:59
【问题描述】:

我正在 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 java.util.HashMap]) does not exist

【问题讨论】:

    标签: google-cloud-dataproc delta-lake delta-table


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-26
      • 2018-05-12
      • 1970-01-01
      相关资源
      最近更新 更多