Databricks Delta和Hive交易表

时间:2018-12-12 22:27:29

标签: apache-spark hive databricks delta-lake

我从两个来源看到,现在您无法与Spark的HIVE交易表进行任何有意义的交互。

Hive ACID

Hive Transactional Tables are not readable by spark

我看到Databricks发布了一项名为Databricks Delta的事务处理功能。现在可以使用此功能读取HIVE交易表吗?

2 个答案:

答案 0 :(得分:0)

不。不是Hive Transactional表。您将创建一种称为Databricks Delta Table(镶木地板的火花表)的新型表,并利用Hive元存储读取/写入这些表。

它是一种外部表,但更像是数据到架构。更多的Spark和Parquet。

解决您的问题的方法可能是读取配置单元文件,然后将相应的模式强加到Databricks笔记本中,然后将其另存为databricks增量表。 像这样:df.write.mode('overwrite').format('delta').save(/mnt/out/put/path) 您仍然需要编写一个指向该位置的DDL。仅FYI DELTA表是Transactional。

答案 1 :(得分:0)

我看不出只强调Spark访问Hive ACID的意义。

实际上,Spark依赖宿主语言,Python和Scala是最受欢迎的选择。

您可以毫无问题地使用Python中的Hive ACID,这是一个经过充分验证的集成。

您的数据可以驻留在Spark数据帧或RDD上,但是只要您可以将其传输到标准Python数据结构,就可以直接从其中与Hive ACID进行互操作。