小编Rak*_*Rak的帖子

如何在 GCS 中的增量表之上创建 BQ 外部表并仅显示最新快照

我正在尝试在增量表之上创建一个外部 BQ 外部表,该表使用谷歌存储作为存储层。在增量表上,我们执行 DML,其中包括删除。

我可以在所有增量文件都存在的 gs 存储桶顶部创建一个 BQ 外部表。然而,它甚至会拉取删除记录,因为 BQ 外部表无法读取 delta 的事务日志,其中它说明要考虑哪些 parquet 文件以及要删除哪些文件。

除了以编程方式将数据从 delta 复制到 BQ 之外,有没有一种方法可以将 BQ 中的 delta 表(gs 位置)的最新快照公开为外部表?

google-cloud-storage google-bigquery pyspark delta-lake

5
推荐指数
1
解决办法
1459
查看次数

delta Lake - 在 pyspark 中插入 sql 失败,出现 java.lang.NoSuchMethodError: org.apache.spark.sql.catalyst.expressions.Alias

Dataproc 集群是使用2.0.x带有 delta io 包的映像创建的io.delta:delta-core_2.12:0.7.0

Spark 版本是 3.1.1

Spark shell 启动:

pyspark --conf "spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension" \
--conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog
Run Code Online (Sandbox Code Playgroud)

执行命令以创建增量表并插入到增量 sql 中:

spark.sql("""CREATE TABLE IF NOT EXISTS customer(
             c_id Long, c_name String, c_city String
             )
           USING DELTA LOCATION 'gs://edw-bi-dev-dataexports/delta-table-poc/dt_poc/customer'
         """)

spark.sql("INSERT INTO customer VALUES(1, 'Shawn', 'Tx')")
Run Code Online (Sandbox Code Playgroud)

错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/spark/python/pyspark/sql/session.py", line 719, in sql
    return DataFrame(self._jsparkSession.sql(sqlQuery), self._wrapped)
  File "/usr/lib/spark/python/lib/py4j-0.10.9-src.zip/py4j/java_gateway.py", line 1305, in __call__
  File "/usr/lib/spark/python/pyspark/sql/utils.py", line 111, in deco …
Run Code Online (Sandbox Code Playgroud)

apache-spark pyspark google-cloud-dataproc databricks delta-lake

4
推荐指数
1
解决办法
901
查看次数