在 spark.SQL DataFrame 和 pandas DataFrame 之间转换 [重复]

Posted

技术标签:

【中文标题】在 spark.SQL DataFrame 和 pandas DataFrame 之间转换 [重复]【英文标题】:Convert between spark.SQL DataFrame and pandas DataFrame [duplicate] 【发布时间】:2017-06-09 03:43:48 【问题描述】:

可以吗

转换自 到 pd.DataFrame

在%pyspark环境下?

【问题讨论】:

【参考方案1】:

试试:

spark_df.toPandas()

toPandas()

Returns the contents of this DataFrame as Pandas pandas.DataFrame.

This is only available if Pandas is installed and available.

如果你想要相反的:

spark_df = createDataFrame(pandas_df)

【讨论】:

如果 pandas 数据框非常大,这将不起作用。 错误是什么? java heap out of memory 错误。 驱动的堆可能对于DataFrame的大小来说太小了,不允许存储在JVM内存中尝试改变驱动内存大小。 还要记住,Spark Dataframe 使用 RDD,它基本上是一个分布在所有节点上的分布式数据集。因此,可以毫无问题地处理大数据。但是,当您将此大数据集转换为 Pandas 数据帧时,它很可能会耗尽内存,因为 Pandas 数据帧不像 spark 那样分布,并且仅使用驱动程序节点的内存,而不是所有其他可用节点。

以上是关于在 spark.SQL DataFrame 和 pandas DataFrame 之间转换 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

DataFrame DataSet Spark SQL学习

Spark SQL中的DataFrame的创建

java的怎么操作spark的dataframe

Spark SQL DataFrame - 异常处理

如何在 Spark SQL 中向现有 Dataframe 添加新列

第56课:Spark SQL和DataFrame的本质