Spark是否可以从数据框中推断出模式

时间:2017-04-20 21:46:58

标签: apache-spark pyspark apache-spark-sql spark-dataframe pyspark-sql

我正在使用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中创建一个新表并自动推断该模式吗?

2 个答案:

答案 0 :(得分:0)

我不确定您收到的错误,但是,如果您尝试创建一个不存在的表,Spark会自动推断架构。

希望有所帮助!

Subhash

答案 1 :(得分:0)

好的,过去几周学到了一些东西,

saveasTable将表保存到hdfs文件系统。如果没有在Hive上显式创建的模式来使用镶木地板文件,则hive不会使用spark创建数据框时的模式推断来反映Hive上表的现有列。

架构推断仅适用于JSON,CSV,不适用于.dat文件或压缩文本文件。这些文件必须处理分隔符,并且必须将第一行重命名为数据帧作为列标题,然后保存到磁盘。