Spark 数据框架 CSV vs Parquet

3

我是 Spark 的初学者,正在尝试理解 Spark 数据框架的机制。我正在比较在从 csv 和 Parquet 中加载数据时,在 Spark SQL 数据框架上运行 SQL 查询的性能差异。我的理解是,一旦数据加载到 Spark 数据框架中,数据源(csv 或 parquet)不应该影响查询的性能。但是我发现两者之间存在显著的性能差异。我使用以下命令加载数据,然后针对数据编写查询。

dataframe_csv = sqlcontext.read.format("csv").load()

dataframe_parquet = sqlcontext.read.parquet()

请解释差异的原因。

你能澄清一下你在哪里看到性能差异吗?是在从csv/parquet读取后实际运行spark sql查询时吗?Spark对数据框架采用了惰性评估。如果你计时执行sql查询数据框架上的操作(例如.show(),.count()等),它很可能会包括从csv/parquet读取的时间。因此,parquet应该更快。 - Max
1个回答

1
你看到CSV和Parquet表现不同的原因是因为Parquet采用列式存储,而CSV则采用纯文本格式。列式存储可实现更小的存储空间,但纯文本在从数据框读取时速度更快。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接