0

我在 S3 中有一个文本格式(.gz)的数据集,我正在使用 spark.read.csv 将文件读入 spark。

这是大约 100GB 的数据,但它包含 150 列。我只使用 5 列(所以我减少了数据的广度)并且我只选择了 5 列。

对于这种情况,spark 是扫描完整的 100GB 数据还是仅智能过滤这 5 列而不扫描所有列(如列格式)?

对此的任何帮助将不胜感激。

imp_feed = spark.read.csv('s3://mys3-loc/input/', schema=impressionFeedSchema, sep='\t').where(col('dayserial_numeric').between(start_date_imp,max_date_imp)).select("col1","col2","col3","col4")
4

1 回答 1

0

使工作流程的第 1 步成为读取 CSV 文件并将其保存为快速压缩的 ORC 或 parquet 文件的过程。

然后去找创建这些文件的人并告诉他们停止它。至少,他们应该切换到 Avro + Snappy,因为这样更容易拆分初始解析并迁移到列格式。

于 2017-01-06T14:25:01.037 回答