使用Spark SQL DataFrameWriter创建外部蜂巢表



作为我正在进行的数据集成过程的一部分,我需要将Spark SQL数据框架作为外部蜂巢表。

目前我的约束:

  • 目前仅限于Spark 1.6(v1.6.0)
  • 需要将数据持续在特定位置,即使删除表定义(因此 exturn 表)
  • 也保留了数据

我找到了编写数据框的令人满意的解决方案df,如下所示:

df.write.saveAsTable('schema.table_name',
    format='parquet',
    mode='overwrite',
    path='/path/to/external/table/files/')       

对结果表进行describe extended schema.table_name确认确实是外部的。我还可以确认即使表本身删除了数据(根据需要)保留数据。

我主要关心的是,我在任何地方都找不到有记录的例子,也无法在官方文档中找到很多提及 - 特别是使用path来执行外部表的创建。(https://spark.apache.org/docs/1.6.0/api/python/pyspark.sql.html.html#pyspark.sql.dataframewrater)。

是否有更好/更安全/更多的标准方法可以持续数据框架?

我宁愿自己创建蜂巢表(例如,创建外部表格(如果不存在的话)),请按照我的需要,然后在Spark中进行:df.write.saveastable('schema.table_name','schema.table_name',',,模式='overwrite')。

这样,您就可以控制表格创建,并且不依赖于HiveContext做所需的工作。过去,Hive表的问题以这种方式创建,并且该行为将来可能会发生变化,因为API是通用的,并且无法保证HiveContext的基本实现。

相关内容

  • 没有找到相关文章

最新更新