我正在使用Spark 2.0。要求是从选择值到数据帧创建新表。写出df为
df.write.saveasTable(hive_table_name,format ='parquet',mode ='overwrite')
错误是: 客户无法通过以下方式进行身份验证:[TOKEN,KERBEROS] 主机详细信息:本地主机是:“some-ip”,目标主机是:“some-other-ip”
此外,如果hive中不存在该表,spark.write.saveasTable会在hive中创建一个新表并自动推断该模式吗?
答案 0 :(得分:0)
我不确定您收到的错误,但是,如果您尝试创建一个不存在的表,Spark会自动推断架构。
希望有所帮助!
Subhash
答案 1 :(得分:0)
好的,过去几周学到了一些东西,
saveasTable将表保存到hdfs文件系统。如果没有在Hive上显式创建的模式来使用镶木地板文件,则hive不会使用spark创建数据框时的模式推断来反映Hive上表的现有列。
架构推断仅适用于JSON,CSV,不适用于.dat文件或压缩文本文件。这些文件必须处理分隔符,并且必须将第一行重命名为数据帧作为列标题,然后保存到磁盘。