用.csv格式的HDFS文件创建熊猫数据框

问题描述:

我试图通过从hadoop集群获取.csv数据并将其放入Pandas DataFrame来创建Spark工作流。我能够从HDFS中提取数据并将其放入RDD中,但无法将其处理到Pandas Dataframe中。 以下是我的代码:用.csv格式的HDFS文件创建熊猫数据框

import pandas as pd 
import numpy as nm 

A=sc.textFile("hdfs://localhost:9000/sales_ord_univ.csv") # this creates the RDD 
B=pd.DataFrame(A) # this gives me the following error:pandas.core.common.PandasError: DataFrame constructor not properly called! 

我敢肯定,这个错误是这样的,由于RDD是一个大单名单, 因此,我试图通过拆分数据“;”(即每新行是不同的字符串) 但这似乎也没有帮助。

我的总体目标是使用Pandas将CSV更改为JSON并输出到MongoDB。我已经使用DictReader,PysparkSQL完成了这个项目,但是想要检查是否可以使用Pandas。

任何帮助,将不胜感激 谢谢!

我建议将csv加载到Spark DataFrame中并将其转换为Pandas DataFrame。

csvDf = sqlContext.read.format("csv").option("header", "true").option("inferschema", "true").option("mode", "DROPMALFORMED").load("hdfs://localhost:9000/sales_ord_univ.csv") 
B = csvDf.toPandas() 

如果仍然使用一个Spark版本< 2.0,则必须使用read.format("com.databricks.spark.csv")和包括com.databricks.spark.csv包(例如与--packages参数使用pyspark壳时)。

你需要hdfs (2.0.16)

from hdfs import Config 
zzodClient = Config().get_client('zzod') #refer to the docs to set up config 
with zzodClient.read(q2Path) as r2Reader: 
    r2 = pandas.read_csv(r2Reader)