apache-spark - Spark-Hudi : Save as table to Glue/Hive catalog

标签 apache-spark pyspark hive aws-glue apache-hudi

场景:
使用 saveAsTable(data frame writer) 存储 Hudi Spark 数据帧方法,使得 Hudi 支持表 org.apache.hudi.hadoop.HoodieParquetInputFormat输入格式架构是自动生成的。
目前,saveAsTable正常(非 Hudi 表)工作正常,生成默认输入格式。
我想使用支持的输入文件格式自动创建 Hudi 表,或者使用一些覆盖版本 saveAsTable或其他方式停留在 Spark 的前提下。

最佳答案

胡迪支持 saveAsTable然而。
您有两个选项可以将 hudi 表与 hive 元存储同步:
同步内部 Spark

val hudiOptions = Map[String,String](
...
  DataSourceWriteOptions.HIVE_URL_OPT_KEY -> "jdbc:hive2://<thrift server host>:<port>",
  DataSourceWriteOptions.HIVE_SYNC_ENABLED_OPT_KEY -> "true",
  DataSourceWriteOptions.HIVE_DATABASE_OPT_KEY -> "<the database>",
  DataSourceWriteOptions.HIVE_TABLE_OPT_KEY -> "<the table>",
  DataSourceWriteOptions.HIVE_PARTITION_FIELDS_OPT_KEY -> "<the partition field>",
  DataSourceWriteOptions.HIVE_PARTITION_EXTRACTOR_CLASS_OPT_KEY -> classOf[MultiPartKeysValueExtractor].getName
...
)
// Write the DataFrame as a Hudi dataset
// it will appear in hive (similar to saveAsTable..)
test_parquet_partition.write
  .format("org.apache.hudi")
  .option(DataSourceWriteOptions.OPERATION_OPT_KEY, DataSourceWriteOptions.INSERT_OPERATION_OPT_VAL)
  .options(hudiOptions)
  .mode(SaveMode.Overwrite)
  .save(hudiTablePath)
同步外部 Spark
运行您的 hudi spark 转换后使用 bash 脚本 hudi documentation
cd hudi-hive

./run_sync_tool.sh  --jdbc-url jdbc:hive2:\/\/hiveserver:10000 --user hive --pass hive --partitioned-by partition --base-path <basePath> --database default --table <tableName>```)
```bash
cd hudi-hive

./run_sync_tool.sh  --jdbc-url jdbc:hive2:\/\/hiveserver:10000 --user hive --pass hive --partitioned-by partition --base-path <basePath> --database default --table <tableName>```

关于apache-spark - Spark-Hudi : Save as table to Glue/Hive catalog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65412195/

相关文章:

hadoop - 插入Hive Orc分区表时出现运行时异常

hadoop - Cloudera Impala 查询失败

java - 如何在 Java 中使用 Flatmap 和个性化对象

apache-spark - Spark BigQuery 连接器 : BaseEncoding$DecodingException: Unrecognized character: 0xa

apache-spark - 如何计算 Spark DataFrame 中的行中位数

python - Pyspark 中的向量汇编器正在创建多个向量的元组而不是单个向量,如何解决这个问题?

python - PySpark:获取数据框中每一行的前 k 列

带有 OR 条件的 Hive 连接

apache-spark - 为什么 Spark 对大小大于 autoBroadcastJoinThreshold 的文件应用广播连接?

java - Spark : Serialization not working with Aggregate