从 spark 插入到集群配置单元表
Posted
技术标签:
【中文标题】从 spark 插入到集群配置单元表【英文标题】:Insert to clustered hive table from spark 【发布时间】:2018-02-27 09:55:13 【问题描述】:我正在尝试对数据存储进行一些性能优化。这个想法是使用 hive 的分桶/集群来分桶可用设备(基于列 id)。我目前的方法是将基于镶木地板文件的外部表中的数据插入表中。结果,它应用了分桶。
INSERT INTO TABLE bucketed_table PARTITION (year, month, day)
SELECT id, feature, value, year, month, day
FROM parquet_table ;
我想通过直接从 PySpark 2.1 将数据直接摄取到该表中来摆脱这一步。 使用 SparkSQL 执行相同的语句会导致不同的结果。通过子句添加集群
INSERT INTO TABLE bucketed_table PARTITION (year, month, day)
SELECT id, feature, value, year, month, day
FROM parquet_table cluster by id ;
仍然会导致不同的输出文件。
这导致两个问题: 1)从火花插入集群蜂巢表的正确方法是什么? 2) 使用 clustered by 语句编写是否可以使 hive 元存储对数据产生好处?
【问题讨论】:
【参考方案1】:我认为目前尚不支持它。我目前使用的是 Spark 2.3,但它失败了,而不是成功并破坏了您的数据存储。
如果您想跟踪其进度,请查看 jira 票 here
【讨论】:
以上是关于从 spark 插入到集群配置单元表的主要内容,如果未能解决你的问题,请参考以下文章
在 emr 集群中使用 spark 从 oracle 中获取数据并进行处理