FAQ¶
我应该使用 PySpark 的 DataFrame API 还是 Spark 上的 Pandas API?¶
如果您已经熟悉 pandas 并希望利用 Spark 处理大数据,我们建议使用 Spark 上的 Pandas API。如果您是从头开始学习 Spark,我们建议您从 PySpark 的 API 开始。
Spark 上的 Pandas API 是否支持结构化流式处理?¶
否,Spark 上的 Pandas API 官方不支持结构化流式处理。
作为一种解决方法,您可以在结构化流式处理中使用带有 foreachBatch 的 pandas-on-Spark API,它允许批量 API
>>> def func(batch_df, batch_id):
... pandas_on_spark_df = ps.DataFrame(batch_df)
... pandas_on_spark_df['a'] = 1
... print(pandas_on_spark_df)
>>> spark.readStream.format("rate").load().writeStream.foreachBatch(func).start()
timestamp value a
0 2020-02-21 09:49:37.574 4 1
timestamp value a
0 2020-02-21 09:49:38.574 5 1
...
Spark 上的 Pandas API 与 Dask 有何不同?¶
不同的项目有不同的侧重点。 Spark 已经部署在几乎每个组织中,并且通常是访问数据湖中存储的大量数据的主要接口。 Spark 上的 Pandas API 受 Dask 的启发,旨在使数据科学家可以轻松地从 pandas 过渡到 Spark。