Pyspark 与 DBUtils

Posted

技术标签:

【中文标题】Pyspark 与 DBUtils【英文标题】:Pyspark with DBUtils 【发布时间】:2020-04-29 22:24:09 【问题描述】:

我正在尝试使用 jupyter notebook python 脚本(在 Docker 上运行)中的 DBUtils 和 Pyspark 来访问 Azure Data Lake Blob。但是,我似乎无法识别 dbutils(即 NameError: name 'dbutils' is not defined)。我已经尝试过显式导入 DBUtils,也没有在阅读时导入它:

“要记住的重要一点是永远不要在你的 Python 脚本中运行 import dbutils。这个命令会成功,但会破坏所有命令,所以没有任何作用。它是默认导入的。” Link

我也尝试了here 发布的解决方案,但它仍然抛出“KeyError: 'dbutils'”

spark.conf.set('fs.azure.account.key.<storage account>.blob.core.windows.net', <storage account access key>)
spark.conf.set("fs.azure.createRemoteFileSystemDuringInitialization", "true")
dbutils.fs.ls("abfss://<container>@<storage account>.dfs.core.windows.net/")
spark.conf.set("fs.azure.createRemoteFileSystemDuringInitialization", "false")

有没有人可以解决这个问题?

【问题讨论】:

【参考方案1】:

dbutil 仅在数据块中受支持。要从非数据块 Spark 环境(如 Azure 或 HDI-Spark 上的 VM)访问 blob 存储,您需要修改 core-site.xml 文件。这是独立 Spark 环境的快速guide。

【讨论】:

有没有办法在没有 dbutils 的情况下将文件复制到 dbfs? dbutils.fs.cp("file:/source", "dbfs:/destination")

以上是关于Pyspark 与 DBUtils的主要内容,如果未能解决你的问题,请参考以下文章

Pyspark 与 DBUtils

Pyspark:重新分区与分区

将 PySpark 与 Jupyter Notebook 集成

与 Pyspark 合并

将 Pyspark 与 Kafka 连接起来

检查一列是不是与pyspark中的groupby连续