如何将数据框结果保存到数据块中的表中?

Eka*_*ara 8 python nlp databricks

我正在尝试将已转换为数据帧的单词列表保存到 databricks 中的表中,以便稍后在集群重新启动时查看或引用它。

我已经尝试了下面的代码,但它一直给我一个错误或确实运行,但我看不到数据库中的表

myWords_External=[['this', 'is', 'my', 'world'],['this', 'is', 'the', 'problem']]
df1 = pd.DataFrame(myWords_External)
df1.write.mode("overwrite").saveAsTable("temp.eehara_trial_table_9_5_19")
Run Code Online (Sandbox Code Playgroud)

最后一行给了我以下错误

AttributeError: 'DataFrame' object has no attribute 'write'
Run Code Online (Sandbox Code Playgroud)

cro*_*oik 21

我认为您在代码中混合了两种不同的技术。第一部分是熊猫:

myWords_External=[['this', 'is', 'my', 'world'],['this', 'is', 'the', 'problem']]
df1 = pd.DataFrame(myWords_External)
Run Code Online (Sandbox Code Playgroud)

第二部分是 pyspark:

df1.write.mode("overwrite").saveAsTable("temp.eehara_trial_table_9_5_19")
Run Code Online (Sandbox Code Playgroud)

我不知道你的用例是什么,但假设你想使用 pandas 并且你不知道如何连接到底层数据库,这是将 pandas 数据帧转换为 pyspark 数据帧并将其另存为的最简单方法一张桌子:

spark_df = spark.createDataFrame(df1)

spark_df.write.mode("overwrite").saveAsTable("temp.eehara_trial_table_9_5_19")

#you can create a new pandas dataframe witht the following command:
pd_df = spark.sql('select * from temp.eehara_trial_table_9_5_19').toPandas()
Run Code Online (Sandbox Code Playgroud)

这样效率低下,最好用pandas。to_sql函数,但您需要知道提供的数据库及其连接凭据。