Spark-SQL 有用的SQL

我发现自己每次用 Spark 造Iceberg表都要耗费老大的劲,官方文档总是没有一个现成的Demo,网上也搜索不到,全靠自己琢磨。故在这里记录一下,顺带帮助一下可能需要的人。

Iceberg

Spark-SQL 启动 Iceberg:

./bin/spark-sql --packages org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.4.2\
    --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \
    --conf spark.sql.catalog.spark_catalog=org.apache.iceberg.spark.SparkSessionCatalog \
    --conf spark.sql.catalog.spark_catalog.type=hive \
    --conf spark.sql.catalog.local=org.apache.iceberg.spark.SparkCatalog \
    --conf spark.sql.catalog.local.type=hadoop \
    --conf spark.sql.catalog.local.warehouse=$PWD/warehouse \
    --conf spark.sql.defaultCatalog=local

注意 package 的名称:org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.4.2。其中 3.5 是 spark 的版本,要使用自己 Spark 对应的版本。2.12 是 Spark 对应的 scala 版本。1.4.2 是 iceberg 的版本。

Spark-SQL 创建一个 Iceberg V2 表:

CREATE TABLE pos_delete_parquet (id int, data string) USING iceberg 
TBLPROPERTIES(
"write.delete.mode"="merge-on-read", 
"write.update.mode"="merge-on-read", 
"write.merge.mode"="merge-on-read", 
"format-version"="2");

merge-on-read 只有 iceberg v2 才有,指定了就算是 iceberg v2 的表了。

未完待续,持续更新

3 条回复 A文章作者 M管理员
  1. 学习到了

    • 谢谢

  2. 厉害呀(☆ω☆)

搜索