如何将Databricks笔记本生成的数据传递到Python步骤?

时间:2019-07-15 13:20:01

标签: python pyspark azure-data-factory-2 azure-databricks fastparquet

我正在构建一个Azure数据工厂v2,其中包括

  • Databricks步骤可从Azure Blob存储查询大型表并生成表格结果intermediate_table;
  • Python步骤(执行多项操作并且要放在一个笔记本中很麻烦)以读取processed_table并生成最终输出。

看起来像这样

enter image description here

笔记本会生成一个pyspark.sql.dataframe.DataFrame,我尝试用类似的尝试将其保存为实木复合地板格式

processed_table.write.format("parquet").saveAsTable("intermediate_table", mode='overwrite')

processed_table.write.parquet("intermediate_table", mode='overwrite')

现在,我希望Python步骤重新读取中间结果,理想情况下是使用postprocess.py文件,其语法类似于

import pandas as pd
intermediate = pd.read_parquet("intermediate_table")

在我的Databricks群集中安装fastparquet之后。
这是(不足为奇...)失败,并出现诸如

的错误
  

FileNotFoundError:[错误2]没有这样的文件或目录:   './my_processed_table'

我认为未找到该文件,因为Python文件未访问正确上下文/路径中的数据。

我应该如何修改上面的代码?在管道中跨这些步骤传递数据的最佳/规范方法是什么? (欢迎您提供其他有关常用/最佳做法的建议)

1 个答案:

答案 0 :(得分:0)

成功运行管道的一种方法是在Databricks笔记本中拥有一个像这样的单元格

{{1}}

然后进入{{1}}

{{1}}

不确定这是否是个好习惯(虽然可以)。