如何在 Databricks 笔记本的 Python 单元中使 DataFrame 可见?
Posted
技术标签:
【中文标题】如何在 Databricks 笔记本的 Python 单元中使 DataFrame 可见?【英文标题】:How to make a DataFrame visible in Python cell in Databricks notebook? 【发布时间】:2019-06-20 22:21:58 【问题描述】:我使用 Databricks 在 Scala 中创建了 Spark DataFrame。在做了一些预处理之后,我想出了一个适合内存的更小的数据子集。因此,我想将其转换为 Pandas,然后另存为 CSV 文件。
问题是我在 Scala 单元格中的 Databricks 笔记本中工作的 DataFrame df
在 Python 单元格中不可见。
%python
df.toPandas().to_csv("dbfs:/FileStore/tables/test.csv", header=True, index=False)
如何使df
在 Python 单元格中可见?
【问题讨论】:
可能好得令人难以置信,但是:df_py = df.toPandas().to_csv("dbfs:/FileStore/tables/test.csv", header=True, index=False)
然后print(df_py)
?
@Erfan:它不起作用。它说找不到df
:NameError: name 'df' is not defined
。但是df
存在于我之前执行成功的上述单元格中。
其实你不需要导出到 csv,只要:df_py = df.toPandas()
然后print(df_py)
@Erfan:这应该是 Python 单元格,对吧?如果是这样,问题是df
在 Python 单元格中不可见。
在 Spark 单元中尝试,然后在 python 单元中使用df_py
【参考方案1】:
这样做display(df)
。它通常也会显示一些嵌套的结构体。
或者我会做这样的事情
df.createOrReplaceTempView("dfViewName")
在下一个单元格中
%sql
Select * from dfViewName
【讨论】:
display(df)
正是我所需要的。关于sql,我认为如果我想在下一个单元格中使用SQL会很有用,但我想使用Python。由于我的最终目标只是保存 CSV 文件,因此显示是正确的解决方案。
顺便问一下,我将使用哪种方法来保存 DataFrame 以使其在同一集群上的另一个 Databricks Notebook 中可访问?
@Erfan:我想要 pandas 将 DataFrame 保存为 CSV 文件。对不起,如果不清楚。当然,我很高兴看到 Pandas 的解决方案。但如果不可能,那么“显示”对我来说是一种解决方法。以上是关于如何在 Databricks 笔记本的 Python 单元中使 DataFrame 可见?的主要内容,如果未能解决你的问题,请参考以下文章
如何获取 Azure Databricks 笔记本运行详细信息
如何使用 Python / Pyspark 在 Databricks 笔记本中合并数据帧
如何在 Databricks 的 PySpark 中使用在 Scala 中创建的 DataFrame
如何在 Azure Databricks 笔记本中调试长时间运行的 python 命令?