将 RDD 加载到 hive

Posted

技术标签:

【中文标题】将 RDD 加载到 hive【英文标题】:Load an RDD into hive 【发布时间】:2017-01-09 11:47:03 【问题描述】:

我想在 spark 版本 1.6.x 中使用 pyspark 将 RDD (k=table_name, v=content) 加载到分区 hive 表(年、月、日)中

尝试使用此 SQL 查询的逻辑的整个过程:

ALTER TABLE db_schema.%FILENAME_WITHOUT_EXTENSION% DROP IF EXISTS PARTITION (year=%YEAR%, month=%MONTH%, day=%DAY%);LOAD DATA INTO TABLE db_schema.%FILENAME_WITHOUT_EXTENSION% PARTITION (year=%YEAR%, month=%MONTH%, day=%DAY%);

有人可以给点建议吗?

【问题讨论】:

【参考方案1】:
spark = SparkSession.builder.enableHiveSupport().getOrCreate()
df = spark.sparkContext.parallelize([(1, 'cat', '2016-12-20'), (2, 'dog', '2016-12-21')])
df = spark.createDataFrame(df, schema=['id', 'val', 'dt'])
df.write.saveAsTable(name='default.test', format='orc', mode='overwrite', partitionBy='dt')

使用 enableHiveSupport()df.write.saveAsTable()

【讨论】:

以上是关于将 RDD 加载到 hive的主要内容,如果未能解决你的问题,请参考以下文章

将大型 Hbase 表加载到 SPARK RDD 中需要很长时间

SPARK_sql加载,hive以及jdbc使用

通过 JDBC 将文件加载到 hive

如何轻松地将json文件的某些方面加载到rdd

将数据加载到 Hive 数组列

将 XML 文件数据加载到 Hive 表中