如何原生读取羽毛文件?

时间:2018-12-01 09:49:38

标签: apache-spark pyspark pyarrow feather

我有羽毛格式文件sales.fea,我正在使用该文件在python和R之间交换数据。

在R中,我使用以下命令:

df = as.data.frame(feather::read_feather("sales.fea"))

在python中,我使用了:

df = feather.read_dataframe("sales.fea")

将数据从该文件加载到内存并以pyspark操作的Spark实例中最快/最好的方法是什么?

我不想使用熊猫来加载数据,因为它对从45GB CSV创建的19GB羽毛文件存在段错误。

我的想法是,Spark非常流行,也很富裕,我希望比通过次有效的临时解决方案更自然的方式。

3 个答案:

答案 0 :(得分:2)

您可以按以下方式将pandas数据框转换为Spark数据框。

from pyspark.sql import SQLContext, Row
sqlContext = SQLContext(sc)
spark_df = sqlContext.createDataFrame(pandas_df)

答案 1 :(得分:0)

也许您可以考虑转换为实木复合地板格式?看起来更适合您的用例,请参见What are the differences between feather and parquet?

答案 2 :(得分:0)

从pyspark导入SparkContext

sc = SparkContext("local", "App Name")
sql = SQLContext(sc)

然后使用createDataFrame,如下所示:

spark_df = sql.createDataFrame(pandas_df)