簡體   English   中英

使用.csv格式的HDFS文件創建Pandas DataFrame

[英]Creating a Pandas DataFrame with HDFS file in .csv format

我試圖通過從hadoop集群中獲取.csv數據並將其放入Pandas DataFrame中來創建一個Spark工作流。 我能夠從HDFS中提取數據並將其放入RDD中,但無法將其處理到Pandas Dataframe中。 以下是我的代碼:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM