とスパークに減らし、私はS3上の異なる場所のデータから別のデータフレームを作成して、単一データフレームにデータフレームをマージしようとしています。今はforループを使っています。しかし、私はマップを使ってはるかに効率的なやり方でpysparkの機能を減らすことができると感じています。 、ここでの最大の問題ではない次善のが、union
地図でforループ並列化と私のアプリケーションではpyspark
from pyspark import SparkConf, SparkContext
from pyspark.sql import SQLContext, GroupedData
import pandas as pd
from datetime import datetime
sparkConf = SparkConf().setAppName('myTestApp')
sc = SparkContext(conf=sparkConf)
sqlContext = SQLContext(sc)
filepath = 's3n://my-s3-bucket/report_date='
date_from = pd.to_datetime('2016-08-01',format='%Y-%m-%d')
date_to = pd.to_datetime('2016-08-22',format='%Y-%m-%d')
datelist = pd.date_range(date_from, date_to)
First = True
#THIS is the for-loop I want to get rid of
for dt in datelist:
date_string = datetime.strftime(dt, '%Y-%m-%d')
print('Running the pyspark - Data read for the date - '+date_string)
df = sqlContext.read.format("com.databricks.spark.csv").options(header = "false", inferschema = "true", delimiter = "\t").load(filepath + date_string + '/*.gz')
if First:
First=False
df_Full = df
else:
df_Full = df_Full.unionAll(df)
あなたは、Sparkを使用するための制約を持っていますか?あなたはdaskを代わりに使用すると考えていないのですか? DASKは、あなたが簡単に私はこの後、私はそれにスパークALGOSを実行していることになるので、火花を使用する必要が – Boud
をやろうとしているものを達成するために、他の素敵なものの間に設計されています。また、データのサイズもかなり大きいです。 – nishant
http://dask.pydata.org/ja/latest/spark.html – Boud