spark dataset/DataFrame比RDD好在哪里? 点击这里也能看全文
文章目录
简介
相对于RDD,DataFrame提供了更加用户友好的API。DataFrame带来的诸多好处包括:
Spark数据源、SQL/DataFrame查询、Tungsten和Catalyst优化以及跨语言的统一API。还有基于DataFrame的MLlib API为机器学习算法和多种语言提供了统一的API。DataFrame便于构建实际的机器学习管道,尤其是特征转换。
好在这里
1. Spark数据源:
-
DataFrame提供了内置的数据源连接器,使得读取和写入各种数据格式(如Parquet、Avro、JSON等)更加简单和直观。
-
DataFrame支持结构化数据的自动推断和模式定义,可以轻松处理带有模式信息的数据集。
-
我整理里一下有十种数据(CSV文件、JSON文件、Parquet文件、ORC文件、Avro文件、文本文件、Hive表、JDBC连接的其他数据库、Protobuf、二进制数据;具体示例用法看这篇文章)
示例:
# 通过DataFrame读取Parquet文件
df = spark.read.parquet("data.parquet")
# 通过DataFrame将数据写入CSV文件
df.write.csv("output.csv")
2. SQL/DataFrame查询:
- DataFrame提供了SQL样式的查询操作,使得数据查询更加直观和简洁。
- DataFrame API提供了丰富的操作函数和表达式,可以进行复杂的数据转换和计算。
示例:
# 使用DataFrame进行查询
resultDF = df.select("name"