我正在运行R Studio和R 3.5.2。
我已使用S3a中的parquet
加载了约250个sparklyr::spark_read_parquet
文件。
我需要从Spark(由sparklyr安装)中收集数据:
spark_install(version = "2.3.2", hadoop_version = "2.7")
但是由于某些原因,这项工作需要很长时间。有时,该任务分配给所有CPU,有时只有一个工作:
请告知您如何解决dplyr::collect
或sparklyr::sdf_collect
“运行年龄”问题。
还请理解,我无法为您提供数据,如果数据量很小,它将可以显着提高工作速度。
答案 0 :(得分:1)
这是预期的行为。 dplyr::collect
,sparklyr::sdf_collect
或Spark的本机collect
会将所有数据带到驱动程序节点。
即使可行(视情况而定,您需要的存储量至少是数据实际大小的2-3倍),也势必会花费很长时间-驱动程序网络接口是最明显的瓶颈。 / p>
在实践中,如果您要收集所有数据,通常跳过网络和平台开销并直接使用本机工具直接加载数据更有意义(给出的描述是将数据下载到驱动程序并转换为R友好的文件格式)。