apache-spark - 如何在 Databricks 中使用 Spark 将 JSON 文件并行写入到已安装的目录

标签 apache-spark databricks azure-databricks

我有一个包含 50,000 个 JSON 文件的 RDD,我需要将其写入 Spark (Databricks) 中的安装目录。安装的路径类似于 /mnt/myblob/mydata (使用 Azure)。我尝试了以下操作,但结果发现我无法在 Spark 作业中使用 dbutils。

def write_json(output_path, json_data):
     dbutils.fs.put(output_path, json_data)

我当前必须做的是将数据带到本地(到驱动程序),然后调用 write_json 方法。

records = my_rdd.collect()
for r in records:
     write_json(r['path'], r['json'])

这种方法有效,但需要很长时间才能完成。有没有更快的方法?

最佳答案

您可以使用map并行执行此操作。

def write_json(output_path, json_data):
    with open(output_path, "w") as f:
        f.write(json_data)

my_rdd.map(lambda r: write_json(r['path'], r['json']))

关于apache-spark - 如何在 Databricks 中使用 Spark 将 JSON 文件并行写入到已安装的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55593896/

相关文章:

Azure Databricks 群集初始化脚本 - 从已安装的存储安装wheel

python - Databricks dbutils 不显示特定文件夹下的文件夹列表

azure-databricks - 如何在 Azure Databricks 上下载 GeoMesa?

python - 列出数据湖中文件夹中的所有文件

hadoop - Mapreduce作业提交与Spark作业提交

apache-spark - 如何在笔记本外使用 DataBricks dbutils jar?

apache-spark - Apache Kafka 和 Spark 流

Azure databricks CI CD 管道用于删除生产中的笔记本

amazon-web-services - 为什么使用 EMR 上的自定义设置会减少 Spark 执行器的数量

scala - Apache Toree 和 Spark Scala 在 Jupyter 中不起作用