首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过sparkSQL创建蜂窝

通过sparkSQL创建蜂窝
EN

Stack Overflow用户
提问于 2018-08-02 21:25:21
回答 2查看 3.7K关注 0票数 5

我对蜂巢中的扣环有一个疑问。我已经创建了一个临时表,该表在列关键字上存储桶。

我通过spark SQL将数据插入到这个临时表中。我已经在spark会话中将hive.enforce.bucketing设置为true。

当我检查这个表的基目录时,它显示了前缀为part_*的文件名。

但是,当我通过另一个表手动将数据插入到这个表中时,我看到了以00000_*为前缀的文件。

我不确定spark sql是否将数据写入存储桶中。

有人能帮帮忙吗。

谢谢,

EN

回答 2

Stack Overflow用户

发布于 2019-07-27 19:36:54

一个令人困惑的领域。

一段时间前我发现了这个:

但是,从Spark 2.3开始支持配置单元存储桶表。Spark通常不允许用户将输出写入配置单元存储桶表。设置hive.enforce.bucketing=falsehive.enforce.sorting=false将允许您保存到配置单元存储区表。

In Spark's JIRA:https://issues.apache.org/jira/browse/SPARK-17729

Hive允许基于以下两个配置将数据插入到存储桶表中,而无需保证存储桶和排序:hive.enforce.bucketinghive.enforce.sorting

有了这个jira,Spark仍然不会按照Hive的分批保证生成分桶数据,但如果用户希望这样做,Spark将允许写入,而不关心分批保证。创建分桶表的能力将允许添加测试用例到Spark,同时将片段添加到Spark,使其支持蜂窝扣件(例如,https://github.com/apache/spark/pull/15229)

,但从权威的来源https://spark.apache.org/docs/latest/sql-migration-guide-hive-compatibility.html#unsupported-hive-functionality如下:

不支持的配置单元功能下面是我们尚不支持的配置单元功能的列表。其中大多数功能很少在配置单元部署中使用。主要的Hive特性表和存储桶:存储桶是Hive表分区中的哈希分区。Spark SQL还不支持存储桶。

所以回答你的问题:你得到了Spark方法到蜂窝扣子,这是一个近似值,因此不是真正相同的东西。

票数 7
EN

Stack Overflow用户

发布于 2020-02-07 19:18:55

虽然Spark (至少在<= 2.4版本中)不直接支持Hive的bucketing格式,但通过使用SparkSQL将数据加载到Hive表中,可以让Spark输出Hive可读的存储桶数据:

代码语言:javascript
复制
//enable Hive support when creating/configuring the spark session
val spark = SparkSession.builder().enableHiveSupport().getOrCreate()

//register DF as view that can be used with SparkSQL
val testDF = Seq((1, "a"),(2, "b"),(3, "c")).toDF("number", "letter")
testDF.createOrReplaceTempView("testDF")

//create Hive table, can also be done manually, e.g. via Hive CLI
val createTableSQL = "CREATE TABLE testTable (number int, letter string) CLUSTERED BY number INTO 1 BUCKETS STORED AS PARQUET"
spark.sql(createTableSQL)

//load data from DF into Hive, output parquet files will be bucketed and readable by Hive
spark.sql("INSERT INTO testTable SELECT * FROM testDF")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51654842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档