使用spark将df写入hdfs:
df.write.partitionBy("date").mode("append").format("ORC").save("/tmp/table1")
在this (default.table1)的基础上创建了Hive External Table
我可以用直线读取这个表。
select * from default.table1; --> works fine
我可以使用spark读取这个文件夹
spark.read.orc("/tmp/table1").show() # --> works fine
然而,当我使用spark读取这个hive表时,我得到错误:
spark.sql("select * from default.table1").show() # --> error
当我对这个表进行计数时,它也工作得很好:
spark.sql("select count(*) from default.table1").show() # --> works fine
另外,当我将spark df作为csv写入hdfs时,我在将其读取为spark时没有问题。sql(蜂窝)
下面是错误信息:
"Py4JJavaError:调用0192.showString.">
通过修复hive的ddl来解决这个问题。
必须包含
行WITH SERDEPROPERTIES…"确保hive文本能够读取spark
中的数据