【发布时间】:2021-02-12 23:39:24
【问题描述】:
我需要一种从 Scala 数据框创建配置单元表的方法。 Hive 表应该在 S3 位置具有 ORC 格式的基础文件,按日期分区。
这是我目前得到的:
我将 scala 数据帧以 ORC 格式写入 S3
df.write.format("orc").partitionBy("date").save("S3Location)
我可以在 S3 位置看到 ORC 文件。 我现在在这些 ORC 文件的顶部创建一个配置单元表:
CREATE EXTERNAL TABLE "tableName"(columnName string)
PARTITIONED BY (date string)
STORED AS ORC
LOCATION "S3Location"
TBLPROPERTIES("orc.compress"="SNAPPY")
但是蜂巢表是空的,即
spark.sql("select * from db.tableName") 不打印任何结果。
但是,当我删除 PARTITIONED BY 行时:
CREATE EXTERNAL TABLE "tableName"(columnName string, date string)
STORED AS ORC
LOCATION "S3Location"
TBLPROPERTIES("orc.compress"="SNAPPY")
我看到了选择查询的结果。
hive 似乎无法识别 spark 创建的分区。我正在使用 Spark 2.2.0。
任何建议将不胜感激。
更新:
我从一个 spark 数据框开始,我只需要一种方法来在其顶部创建一个配置单元表(基础文件在 S3 位置为 ORC 格式)。
【问题讨论】:
标签: scala apache-spark hive apache-spark-sql hiveql