Databricks创建Delta Table时报错的问题求助
Databricks创建Delta外部表报错修复
错误原因
COMMAND 6的SQL语句中,LOCATION参数用了字面量字符串'delta_sales_path',而非之前定义的变量delta_sales_path对应的实际DBFS路径。Spark会默认在Hive仓库目录下查找这个不存在的delta_sales_path文件夹,因此找不到Delta表必需的_delta_log事务日志,触发报错。
修正后的COMMAND 6代码
两种可行的修正方式:
方式1:用f-string注入变量值
spark.sql(f""" CREATE TABLE sales_delta USING delta LOCATION '{delta_sales_path}'; """)
方式2:用SparkSQL参数绑定(更安全,规避SQL注入风险)
spark.sql(""" CREATE TABLE sales_delta USING delta LOCATION ?; """, delta_sales_path)
补充说明
你之前的COMMAND 1-4执行都是正确的,已经将数据以Delta格式写入到delta_sales_path对应的DBFS路径下,仅需修正创建表时的路径引用即可解决问题。
内容的提问来源于stack exchange,提问作者Ram Nathan
相关产品推荐
相关产品推荐

