【发布时间】:2018-07-24 11:48:38
【问题描述】:
我正在使用 Spark 生成 Parquet 文件(由 setid 分区,使用 Snappy 压缩)并将它们存储在 HDFS 位置。
df.coalesce(1).write.partitionBy("SetId").
mode(SaveMode.Overwrite).
format("parquet").
option("header","true").
save(args(1))
Parquet数据文件存放在/some-hdfs-path/testsp下
然后我为它创建 Hive 表,如下所示:
CREATE EXTERNAL TABLE DimCompany(
CompanyCode string,
CompanyShortName string,
CompanyDescription string,
BusinessDate string,
PeriodTypeInd string,
IrisDuplicateFlag int,
GenTimestamp timestamp
) partitioned by (SetId int)
STORED AS PARQUET LOCATION '/some-hdfs-path/testsp'
TBLPROPERTIES ('skip.header.line.count'='1','parquet.compress'='snappy');
但是,当我在 Hive 中的 table 上选择时,它不显示任何结果。
我试过了:
-
运行
msck命令,如:msck repair table dimcompany; -
设置如下:
spark.sql("SET spark.sql.hive.convertMetastoreParquet=false")
这些都不起作用,我该如何解决?
【问题讨论】:
标签: apache-spark hive partitioning parquet