我正在尝试使用Pyspark在hive中创建一个表 . 该表已成功创建,但不是PARQUET格式 . 我创建了一个示例数据集来重新创建我的问题 .

from pyspark import SparkContext, SparkConf
from pyspark.sql import SparkSession, HiveContext

conf = (SparkConf()
        .setAppName("wrting_to_hive_table"))
sc = SparkContext(conf=conf)
sqlContext = HiveContext(sc)


columns = ['id', 'dogs', 'cats']
vals1 = [
     (1, 2, 0),
     (2, 0, 1)
]

vals2 = [
     (3, 6, 0),
     (4, 4, 2)
]
df1 = sqlContext.createDataFrame(vals1, columns)
df2 = sqlContext.createDataFrame(vals2, columns)

df1.write.saveAsTable("test1")
df2.write.saveAsTable("test2")

create_hive_table = 'CREATE TABLE df_final STORED AS PARQUET AS ' \
    'SELECT * FROM test1 ' \
    'UNION ' \
    'SELECT * FROM test2'

sqlContext.sql(create_hive_table)

表'test1'和'test2'以PARQUET格式存储在文件夹(“C:\ spark-warehouse \ test1)&(”C:\ spark-warehouse \ test2)下但如果我查看文件夹“C:\ spark-warehouse \ df_final \“,文件没有”PARQUET“扩展名,文件类型只是说”文件“ . 如何强制HIVE创建表并以PARQUET格式存储它 .

我不想用spark数据帧做一个UNION并将它加载到HIVE表中,因为实际上我的数据集大约有几百GB而且它不适合内存 .