将数据着色器与 PySpark DataFrame 一起使用
Using datashader with PySpark DataFrame
我想绘制 200 Gb 的 NYC taxi Dataset。
我设法使用数据着色器 plot/visualize pandas 数据帧。
但是我没有设法使用 PySpark 数据框(使用一个 4 节点集群,每个节点上有 8Gb RAM)来完成它。不过,我能做的是使用 .toPandas() 方法将 PySpark 数据帧转换为 Pandas 数据帧。但这会将整个数据帧加载到驱动程序节点上的 RAM 中(没有足够的 RAM 来容纳整个数据集),因此不会利用 Spark 的分布式功能。
我也知道,仅获取上车和下车的经度和纬度将使数据帧达到约 30GB。但这并没有改变问题。
创建了一个关于数据着色器 GitHub 的问题
我已将 Dask 视为替代方案,但似乎尚不支持转换 PySpark 数据帧 -> Dask 数据帧。
感谢您的建议!
确实,没有直接的方法可以将(分布式)pyspark 数据帧转换为 Dask 数据帧。然而,Dask 是它自己的执行引擎,如果你愿意,你应该能够完全避开 spark。 Dask 能够以类似于 spark 的方式从远程数据源(例如 S3)从 CSV 加载数据集,这可能看起来像:
df = dask.dataframe.read_csv('s3://bucket/path/taxi*.csv')
这与数据着色器一起使用效果特别好,它知道如何使用 Dask 计算其聚合,因此您可以处理大于内存的数据集,可能跨集群计算 - 所有这些都不会产生火花。
datashader examples 包含 Dask 和 NYC 出租车示例(但不幸的是,它们并不在一起)。
这与 Dask 有所不同..
我想说用 spark 可视化此类数据的最佳方法是使用 zeppelin。安装很容易https://zeppelin.apache.org/。您拥有可与 spark 一起使用的默认可视化效果。检查一下。
我想绘制 200 Gb 的 NYC taxi Dataset。 我设法使用数据着色器 plot/visualize pandas 数据帧。 但是我没有设法使用 PySpark 数据框(使用一个 4 节点集群,每个节点上有 8Gb RAM)来完成它。不过,我能做的是使用 .toPandas() 方法将 PySpark 数据帧转换为 Pandas 数据帧。但这会将整个数据帧加载到驱动程序节点上的 RAM 中(没有足够的 RAM 来容纳整个数据集),因此不会利用 Spark 的分布式功能。
我也知道,仅获取上车和下车的经度和纬度将使数据帧达到约 30GB。但这并没有改变问题。
创建了一个关于数据着色器 GitHub 的问题我已将 Dask 视为替代方案,但似乎尚不支持转换 PySpark 数据帧 -> Dask 数据帧。
感谢您的建议!
确实,没有直接的方法可以将(分布式)pyspark 数据帧转换为 Dask 数据帧。然而,Dask 是它自己的执行引擎,如果你愿意,你应该能够完全避开 spark。 Dask 能够以类似于 spark 的方式从远程数据源(例如 S3)从 CSV 加载数据集,这可能看起来像:
df = dask.dataframe.read_csv('s3://bucket/path/taxi*.csv')
这与数据着色器一起使用效果特别好,它知道如何使用 Dask 计算其聚合,因此您可以处理大于内存的数据集,可能跨集群计算 - 所有这些都不会产生火花。
datashader examples 包含 Dask 和 NYC 出租车示例(但不幸的是,它们并不在一起)。
这与 Dask 有所不同..
我想说用 spark 可视化此类数据的最佳方法是使用 zeppelin。安装很容易https://zeppelin.apache.org/。您拥有可与 spark 一起使用的默认可视化效果。检查一下。