常见问题 ¶
我应该在Spark上使用PySpark的DataFrame API还是pandas API? ¶
如果您已经熟悉pandas并希望利用Spark进行大数据处理,我们建议您使用Spark上的pandas API。 如果您是从头学习Spark,我们建议您从PySpark的API开始。
pandas API 在 Spark 上支持结构化流式处理吗? ¶
不,pandas API在Spark上并不正式支持结构化流处理。
作为一种变通方法,您可以在结构化流中使用带有 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
...
pandas API在Spark上与Dask有什么不同? ¶
不同的项目有不同的重点。Spark 几乎在每个组织中都已部署,并且通常是访问存储在数据湖中的大量数据的主要接口。pandas API on Spark 的灵感来自 Dask,旨在使数据科学家从 pandas 过渡到 Spark 变得简单。