【问题标题】:Does Spark saveastable infer schema from dataframeSpark saveastable 是否从数据帧推断架构
【发布时间】:2017-04-20 21:46:58
【问题描述】:

我使用的是 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中创建一个新表并自动推断schema吗?

【问题讨论】:

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


    【解决方案1】:

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

    希望有帮助!

    子哈希

    【讨论】:

    • 谢谢 Subash。我不确定主机和目的地之间的某种路由问题。
    【解决方案2】:

    好的,过去几周的一些学习,

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

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

    【讨论】:

    • [1] ..saves a table to the hdfs file system.. 它将DataFrame 保存为Hive 表。根据Hive MetaStore 配置,目的地可能是各种东西,例如HDFSS3[2] 你确定..Schema inference is only for JSON, CSV .. 吗?从Spark 2.x 开始,我可以确认将DataFrame 持久化为压缩 格式,如ORCParquet 可以处理schema-inferencing
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 2019-04-29
    相关资源
    最近更新 更多