2017-12-16 28 views
1

URLにあるcsvをディスクに書き込まずにPysparkのデータフレームに読み込むにはどうすればよいですか?pyspark csvをデータフレームに書き込むことなくディスクに書き込む

ノー運と、次の試してみた:

import urllib.request 
from io import StringIO 

url = "https://raw.githubusercontent.com/pandas-dev/pandas/master/pandas/tests/data/iris.csv" 
response = urllib.request.urlopen(url) 
data = response.read()  
text = data.decode('utf-8') 


f = StringIO(text) 

df1 = sqlContext.read.csv(f, header = True, schema=customSchema) 
df1.show() 

答えて

2

TLを、DRはそれは不可能であり、一般的には、ドライバを介してデータを転送するデッドエンドです。

  • スパーク前2.3 csvリーダーはURI(およびhttpはサポートされていません)からのみ読み取ることができます。
  • あなたが RDDを使用するスパーク2.3では
  • spark.read.csv(sc.parallelize(text.splitlines())) 
    

    が、データがディスクに書き込まれます。

  • 次のことができパンダからcreateDataFrame:ファイルが小さい場合

    spark.createDataFrame(pd.read_csv(url))) 
    

    が、これは再びディスクへの書き込みを

私はちょうどsparkFiles使用したい:

from pyspark import SparkFiles 

spark.sparkContext.addFile(url) 

spark.read.csv(SparkFiles.get("iris.csv"), header=True)) 
+0

スーパー役に立った、ありがとう! – RobinL

関連する問題