我从两个来源看到,现在您无法与Spark的HIVE交易表进行任何有意义的交互。
Hive Transactional Tables are not readable by spark
我看到Databricks发布了一项名为Databricks Delta的事务处理功能。现在可以使用此功能读取HIVE交易表吗?
答案 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进行互操作。