gpt4 book ai didi

scala - 在配置单元中发布插入数据创建小零件文件

转载 作者:可可西里 更新时间:2023-11-01 15:24:07 25 4
gpt4 key购买 nike

我正在处理超过 1000000 条 json 文件记录我正在逐行读取文件并提取所需的键值(json 是混合结构未修复。所以我正在解析并生成所需的 json 元素)并生成类似于 json_string 变量的 json 字符串并推送到配置单元表数据正确存储但在 hadoop apps/hive/warehouse/jsondb.myjson_table 文件夹中包含小零件文件。每次插入查询都会创建新的(.1 到 .20 kb)零件文件。因为如果我在配置单元上运行简单查询,因为它需要超过 30 分钟。显示我的逻辑示例代码,此迭代多次将新记录插入到配置单元中。 enter image description here


import org.apache.spark.sql.SparkSession

val spark = SparkSession.builder().appName("SparkSessionZipsExample").enableHiveSupport().getOrCreate()

var json_string = """{"name":"yogesh_wagh","education":"phd" }"""

val df = spark.read.json(Seq(json_string).toDS)

//df.write.format("orc").saveAsTable("bds_data1.newversion");

df.write.mode("append").format("orc").insertInto("bds_data1.newversion");

我也曾尝试添加配置单元属性来合并文件,但它不会工作,

我还尝试从现有表格创建表格,以将小部分文件合并为一个 256 MB 的文件..请分享示例代码以插入多条记录并在部分文件中追加记录。

最佳答案

我认为每个单独的插入都会创建一个新的零件文件。

您可以创建这些 json 字符串的 dataset/dataframe,然后将其保存到 hive 表中。

您可以使用 hive ddl ALTER TABLE table_name CONCATENATE;

合并现有的小文件

关于scala - 在配置单元中发布插入数据创建小零件文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49028700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com