我正在使用PySpark进行大数据分析.我可以使用以下命令导入存储在特定存储桶的特定文件夹中的所有CSV文件:
df = sqlContext.read.format('com.databricks.spark.csv').options(header='true', inferschema='true').load('file:///home/path/datafolder/data2014/*.csv')
(其中*充当通配符)
我遇到的问题如下:
>如果我想对2014和2015年数据进行分析,即文件1是.load(‘file:///home/path/SFweather/data2014/*.csv’),文件2是.load(‘file: ///home/path/SFweather/data2015/*.csv’),文件3为.load(‘file:///home/path/NYCweather/data2014/*.csv’),文件4为.load(‘文件:///home/path/NYCweather/data2015/*.csv’).如何同时导入多个路径以获得一个数据帧?我是否需要将它们全部单独存储为数据帧,然后在PySpark中将它们结合在一起? (您可以假定所有CSV都具有相同的架构)
>假设现在是2014年11月.如果我想再次运行分析,但是在“最新数据”上运行,该怎么办? dec14是2014年12月?例如,我想在12月14日加载文件2:.load(‘file:///home/path/datafolder/data2014/dec14/*.csv’)并使用以下文件:.load(‘file:/ //home/path/datafolder/data2014/nov14/*.csv’)进行原始分析.有没有办法安排Jupyter笔记本电脑(或类似产品)更新加载路径并导入最新运行(在这种情况下,“ nov14”将被“ dec14”代替,然后被“ jan15”等取代).
我浏览了前面的问题,但是由于这是特定于AWS / PySpark集成的,因此无法找到答案.
预先感谢您的帮助!
[背景:我可以从包含各种大数据集的各个团队访问许多S3存储桶.将其复制到我的S3存储桶中,然后构建Jupyter笔记本似乎比直接从其存储桶中提取数据并在其顶部构建模型/表格/等等并将处理后的输出保存到数据库中要多得多.因此,我在上面发布问题.如果我的想法完全错误,请阻止我! :)]