如何使用Spark in Databricks将JSON文件并行写入已挂载的目录

问题描述 投票:1回答:1

我有一个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'])

这种方法有效,但需要永远完成。有更快的方法吗?

apache-spark databricks azure-databricks
1个回答
1
投票

您可以使用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']))
© www.soinside.com 2019 - 2024. All rights reserved.