从S3读取到Spark时过滤数据

时间:2018-05-30 19:01:52

标签: r hive pyspark amazon-emr sparklyr

我们正在转向AWS EMR / S3并使用R进行分析(sparklyr库)。我们在S3中有500GB的销售数据,包含多个产品的记录。我们想要分析几个产品的数据,并希望只读取文件的子集到EMR中。

到目前为止,我的理解是spark_read_csv将提取所有数据。 R/Python/Hive是否有办法只读取我们感兴趣的产品的数据?

1 个答案:

答案 0 :(得分:0)

简而言之,格式的选择与有效频谱相反。

使用数据

  • 按感兴趣的partitionBy或正确目录结构的DataFrameWriter选项分区列。
  • 在感兴趣的列上按(bucketBy和持久性Metastore的DataFrameWriter选项)聚集。
在某些情况下,

可以帮助缩小对特定分区的搜索范围,但如果filter(product == p1)具有高度选择性,那么您可能会查看错误的工具。

根据要求:

  • 一个合适的数据库。
  • Hadoop上的数据仓库。

可能是更好的选择。

您还应该考虑选择更好的存储格式(如Parquet)。