2016-07-04 13 views
1

私はストリーミング経由で取得するcsvファイルからデータフレームを作成したいと思います:csvファイルをダウンロードしているPythonリクエストストリームからデータフレームをロードする方法はありますか?

import requests 

url = "https://{0}:8443/gateway/default/webhdfs/v1/{1}?op=OPEN".format(host, filepath) 

r = requests.get(url, 
       auth=(username, password), 
       verify=False, 
       allow_redirects=True, 
       stream=True) 

chunk_size = 1024 
for chunk in r.iter_content(chunk_size): 
    # how to load the data 

データをHTTPストリームからスパークにロードすることができますか?

データの取得にHDFS形式を使用することはできません.WebHDFSを使用する必要があります。

+0

受信した結果をストリーミング中に作成しようとしていますが、正しいですか? Spark Streamingの機能を調べることもできます。 –

+0

ファイルがインポートされた場合、データはコア・スパークを使用して解析されます。 –

答えて

2

チャンク境界のRDDをあらかじめ生成してから、ワーカー内部のファイルを処理するために使用できます。例:

def process(start, finish): 
    // Download file 
    // Process downloaded content in range [start, finish) 
    // Return a list of item 

partition_size = file_size/num_partition 
boundaries = [(i, i+paritition_size - 1) for i in range(0, file_size, partition_size)] 
rrd = sc.parallelize(boundaries).flatMap(process) 
df = sqlContext.createDataFrame(rrd) 
+0

私の解決策よりもずっと良く、結果はstackoverflowになります:http://stackoverflow.com/questions/38187333/unionall-resulting-in-stackoverflow –

関連する問題