apache-spark - 如何在 Databricks 中使用 Spark 将 JSON 文件并行写入挂载目录
问题描述
我需要将RDD
50,000 个 JSON 文件写入 Spark(Databricks)中的已安装目录。挂载的路径看起来像/mnt/myblob/mydata
(使用 Azure)。我尝试了以下方法,但事实证明我无法dbutils
在 Spark 作业中使用。
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']))
推荐阅读
- javascript - 在输入框中输入时如何在字符串中插入换行符
- godot - 如何在 Godot 中的按钮上设置“StyleBoxEmpty”?
- r - 如何通过在 R 中迭代列名来对 rJAGS MCMC 后验分布进行子集化?
- ionic-framework - Ionic 4. NavParams 的替代方案
- asp.net - 当 Jenkins 依赖于另一个 .net 项目时,如何配置 Jenkins 来构建一个 .net 框架项目?
- c# - 递归切换可见性后控件不可见?
- mysql - MySQL 填充链接表
- python - 如何在 Python 中嗅探 Flatbuffers?
- gerrit - Gerrit 无法启动:
- jquery - JQuery:prettyPhoto() - 在 Internet Explorer 中使用时,它会尝试下载视频