【发布时间】:2019-06-06 14:37:46
【问题描述】:
数据来自 Hive 表,更准确地说
第一个表有属性
Serde Library org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
InputFormat org.apache.hadoop.mapred.SequenceFileInputFormat
OutputFormat org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
此表应转换为镶木地板并具有属性
Serde Library org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe
InputFormat org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat
OutputFormat org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat
执行以下 Scala Spark 代码:
val df = spark.sql("SELECT * FROM table")
df.write.format("parquet").mode("append").saveAsTable("table")
这仍然会导致不需要的属性:
Serde Library org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
InputFormat org.apache.hadoop.mapred.SequenceFileInputFormat
OutputFormat org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
希望有人可以帮助我
【问题讨论】:
-
您是否要追加到已经存在的表?如果是这样,它将提取现有表的属性并使用这些属性。
-
我没有附加到已经存在的表或表中。基本上我的问题是,如何将带有 HiveSequenceFileOutputFormat 的表格格式更改为带有 MapredParquetOutputFormat 的新表格?希望这能澄清一点。
标签: apache-spark hive apache-spark-sql parquet