数据框考拉到增量表:错误:调用o237.save时发生错误

时间:2019-10-24 21:22:59

标签: python pandas apache-spark databricks

我从驱动程序节点使用Pandas读取了几个csv文件,将Pandas Dataframe转换为Koalas Dataframe,最后,我想将Koalas中的数据插入Delta表中,但出现错误:

import databricks.koalas as ks
import pandas as pd
import glob
all_files = glob.glob('/databricks/driver/myfolder/')
li = []
for filename in all_files:
    df = pd.read_csv(filename, index_col=None, header=0)
    li.append(df)
frame = pd.concat(li, axis=0, ignore_index=True)
df = ks.from_pandas(frame)              
df.to_delta('dbfs:/FileStore/filesTest/%s' % tablename, mode='append')
  

错误:调用o237.save时发生错误。 :   java.lang.IllegalStateException:在Spark中找不到REPL ID   本地属性。 Spark-submit和R不支持事务性   来自不同群集的写入。如果您使用的是R,请切换至   Scala或Python。如果您使用的是spark-submit,请将其转换为   Databricks JAR工作。或者您可以通过设置禁用多集群写入   'spark.databricks.delta.multiClusterWrites.enabled'为'false'。如果   禁用此功能,写入单个表必须源自   单个群集。请检查   https://docs.databricks.com/delta/delta-intro.html#frequently-asked-questions-faq   有关更多详细信息。

enter image description here

1 个答案:

答案 0 :(得分:1)

Delta Lake在Databricks Runtime 4.2及更高版本中支持来自同一工作空间中多个群集的事务性写入。所有编写器都必须运行Databricks Runtime 4.2或更高版本。

在此模式下运行时,不支持以下功能:

  • SparkR
  • 火花提交作业
  • 使用REST API运行命令
  • 客户端加密
  • 使用客户提供的加密密钥的服务器端加密
  • 无法访问AWS Security Token Service的群集中具有凭据的S3路径

请确保:

  • 如果您使用的是R,请切换至Scala或Python。
  • 如果您正在使用spark-submit,请将其转换为Databricks JAR作业。

参考:“ Delta Lake - Introductory Notebooks”和“ Delta - FAQs”。

希望这会有所帮助。