Spark SQL返回所有null,而直接Hive工作和直接Parquet通过Spark工作



我在Hive中定义的外部表上有一个奇怪的Spark SQL问题

CREATE EXTERNAL TABLE ... STORED AS PARQUET... LOCATION 'hdfs://path/TABLENAME'

如果我用spark.table("tablename")spark.sql("select column from tablename")引用Spark中的表,我得到正确的行计数,但每个值都是空的。

当我通过Beeline查询表时,我得到了正确的值。

此外,如果我直接在Spark中使用spark.read.parquet("hdfs://path/TABLENAME")查询Parquet,我也会得到正确的答案。

更奇怪的是,如果我用类似的CREATE EXTERNAL TABLE...语句在HDFS中创建另一个外部表,Spark SQL工作

我下一步看哪里?

我现在从头开始运行hive SQL遇到了类似的问题。我的SQL没有为每个字段设置别名。当我添加别名时,它工作了。

最新更新