我从两个来源看到,现在您无法以任何有意义的方式与spark的hive事务表进行交互。Hive酸spark无法读取配置单元事务表我看到databricks发布了一个名为databricks delta的事务特性。现在是否可以使用此功能读取配置单元事务表?
rqqzpn5f1#
不。不是配置单元事务表。您可以创建一个名为databricks delta table(parquets的spark表)的新类型的表,并利用配置单元元存储来读/写这些表。它是一种外部表,但更像是模式的数据。更多的Spark和Parquet地板。您的问题的解决方案可能是读取配置单元文件并在databricks笔记本中相应地应用模式,然后将其另存为databricks delta表。这样地: df.write.mode('overwrite').format('delta').save(/mnt/out/put/path) 您仍然需要编写一个指向该位置的ddl。仅供参考delta表是事务性的。
df.write.mode('overwrite').format('delta').save(/mnt/out/put/path)
huus2vyu2#
我看不出有什么必要把精力放在获取Hive酸的Spark上。实际上spark依赖于宿主语言,python和scala是最流行的选择。您可以使用python中的hiveacid,这是一个非常成熟的集成。您的数据可以驻留在sparkDataframe或rdd上,但只要可以将其传输到标准python数据结构,就可以直接从这些数据结构与hiveacid进行互操作。
2条答案
按热度按时间rqqzpn5f1#
不。不是配置单元事务表。您可以创建一个名为databricks delta table(parquets的spark表)的新类型的表,并利用配置单元元存储来读/写这些表。
它是一种外部表,但更像是模式的数据。更多的Spark和Parquet地板。
您的问题的解决方案可能是读取配置单元文件并在databricks笔记本中相应地应用模式,然后将其另存为databricks delta表。这样地:
df.write.mode('overwrite').format('delta').save(/mnt/out/put/path)
您仍然需要编写一个指向该位置的ddl。仅供参考delta表是事务性的。huus2vyu2#
我看不出有什么必要把精力放在获取Hive酸的Spark上。
实际上spark依赖于宿主语言,python和scala是最流行的选择。
您可以使用python中的hiveacid,这是一个非常成熟的集成。
您的数据可以驻留在sparkDataframe或rdd上,但只要可以将其传输到标准python数据结构,就可以直接从这些数据结构与hiveacid进行互操作。