我从驱动程序节点使用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 有关更多详细信息。
答案 0 :(得分:1)
Delta Lake在Databricks Runtime 4.2及更高版本中支持来自同一工作空间中多个群集的事务性写入。所有编写器都必须运行Databricks Runtime 4.2或更高版本。
在此模式下运行时,不支持以下功能:
请确保:
参考:“ Delta Lake - Introductory Notebooks”和“ Delta - FAQs”。
希望这会有所帮助。