【发布时间】:2026-02-23 10:20:05
【问题描述】:
我有以下 Scala 代码,用于将数据从 json 文件写入 Hive 中的表。 导入 org.apache.spark.SparkConf 导入 org.apache.spark.sql.SQLContext
val conf = new SparkConf().setAppName("App").setMaster("local")
import org.apache.spark.sql.hive._
val hiveContext = new HiveContext(sc)
val stg_comments = hiveContext.read.schema(buildSchema()).json(<path to json file)
comment.write.mode("append").saveAsTable(<table name>)
我的 json 数据的字段值中有换行符和回车符,因此,我不能简单地在 Hive 中插入记录(因为 Hive 表默认情况下不在数据值中存储换行符和回车符),因此,我需要使用 SaveAsTable 选项。这里的问题是,每次读取一个 json 文件并将新记录附加到现有表时,都会在 Hive 仓库目录的表目录中创建一个新的 parquet 文件。这会导致目录中的实木复合地板文件非常小。我希望将数据附加到现有的镶木地板文件中。我们知道该怎么做吗?谢谢!
【问题讨论】:
标签: scala apache-spark hive parquet