我已经部署了一个azurehdinsight群集,它对azuredatalake存储上的所有目录都具有rwx权限,该存储帐户也是其存储帐户。在head节点上,我可以使用如下命令从ADLS加载图像数据:
my_rdd = sc.binaryFiles('adl://{}.azuredatalakestore.net/my_file.png')
工作线程无法访问SparkContext的binaryFiles()
函数。我可以使用azure-datalake-store
pythonSDK来加载该文件,但这似乎要慢得多。我假设是因为它没有意识到集群和ADLS之间的关联带来的好处。在
有没有一种更快的方法从相关的adl加载文件到工人身上?在
如有需要,可提供进一步的背景:
我正在使用PySpark将一个经过训练的深度学习模型应用到大量图像集合中。由于加载模型需要很长时间,我的理想是:
mapPartition()
应用于包含完整列表的RDD)由于我不知道如何在worker上高效地加载映像,目前我的最佳选择是对包含映像字节数据的RDD进行分区,这(我假设)内存效率低下,并通过让head节点执行所有数据加载而造成瓶颈。在
HDInsight集群的主存储仅作为HDFS根目录提供。在
在pyspark中:
^{pr2}$输出:
^{3}$相关问题 更多 >
编程相关推荐