我有羽毛格式文件sales.fea
,我用它来交换python
和R之间的数据。
在R中我使用以下命令:
df = as.data.frame(feather::read_feather("sales.fea"))
在python我用过:
df = feather.read_dataframe("sales.fea")
将数据从该文件加载到内存到从pyspark
运行的Spark实例的最快/最佳方法是什么?
我不想使用pandas来加载数据,因为它是我的19GB羽毛文件的段错误,由45GB csv创建。
我的想法是,Spark是如此时髦,也是羽毛,我希望有一些更本土化的方式,而不是通过次高效的临时解决方案。
您可以将pandas dataframe转换为Spark数据帧,如下所示。
from pyspark.sql import SQLContext, Row
sqlContext = SQLContext(sc)
spark_df = sqlContext.createDataFrame(pandas_df)
也许你可以考虑改用镶木地板格式?看起来更适合您的用例,请参阅What are the differences between feather and parquet?
来自pyspark导入SparkContext
sc = SparkContext("local", "App Name")
sql = SQLContext(sc)
然后使用createDataFrame,如下所示:
spark_df = sql.createDataFrame(pandas_df)