配置单元元存储中的寄存器增量表错误

ojsjcaue  于 2021-06-25  发布在  Hive
关注(0)|答案(2)|浏览(365)

我需要在配置单元元存储中注册增量表,以便能够使用连接到thriftserver的外部报告工具来查询它
PySparkAPI工作得很好,我能够创建可删除的对象

ordersDeltaTable = DeltaTable.forPath(spark, delta_path)

当我运行sql命令时

%%sql
CREATE TABLE orders_delta
USING DELTA
LOCATION '/tmp/orders/delta/'

或者

spark.sql("CREATE TABLE orders_delta USING delta LOCATION '/tmp/orders/delta/'")

还是这个

%%sql
CREATE TABLE orders_delta
USING delta
AS SELECT *
FROM csv.`s3://orders/raw/public/order_items/`

我总是有同样的例外

An error was encountered:
u'Can not create a Path from an empty string'
Traceback (most recent call last):
  File "/usr/lib/spark/python/lib/pyspark.zip/pyspark/sql/session.py", 
line 767, in sql
    return DataFrame(self._jsparkSession.sql(sqlQuery), self._wrapped)
  File "/usr/lib/spark/python/lib/py4j-0.10.7- 
   src.zip/py4j/java_gateway.py", line 1257, in __call__
    answer, self.gateway_client, self.target_id, self.name)
  File "/usr/lib/spark/python/lib/pyspark.zip/pyspark/sql/utils.py", 
line 79, in deco
    raise IllegalArgumentException(s.split(': ', 1)[1], stackTrace)
IllegalArgumentException: u'Can not create a Path from an empty 
string'

我正在使用
emr 5.27.0 spark 2.4.4 hive 2.3.5 delta-core_2.11-0.4.0.jar和jupyter笔记本。
有没有其他方法可以在hive元存储中注册deltatable?

lqfhib0f

lqfhib0f1#

任何强有力的理由通过Hive。当你输入emr时,你可以启用胶水目录。所以spark创建的表直接与glue同步。然后,你可以使用外部用户连接到雅典娜的报告-基本上你可以摆脱Hive和运行电子病历的方式。
雅典娜的替代品是红移光谱

jobtbby3

jobtbby32#

请注意,从delta-lake 0.4.0开始,尽管它包含了pysparkapi,如前所述,它使用pythonapi对delta-lake表进行简单、可靠的升级和删除,但sqldml还不受支持。错误消息是由于sparksqldml创建了表,但是delta-lake还不支持它;它是在三角洲湖未来的路线图。
由于这个和其他一些问题,delta lake 0.4.0还不支持hive metastore表;这也是三角洲湖未来的路线图。

相关问题