我有CSV文件,有数百万行记录(约2GB)和15列。我需要计算此文件中的不同指标,例如中位数,平均值,平均值和其他一些统计数据。
我是Spark的新手,不知道我需要什么Spark Data Structure来保存所有这些记录。我应该创建代表一行数据的类,称为MyClass
,然后将数据读入JavaRDD<MyClass>
吗?
或者最好使用DataFrame?如何从.csv
文件创建DataFrame以及如何从JavaRDD<MyClass>
文件创建.csv
?
更新:如果有问题,.csv
文件没有架构。架构存在于单独的.csv
文件中。
答案 0 :(得分:1)
Dataframe是较新推荐的API。除非确实需要较低级别的功能,否则应避免使用RDD。从数据框计算摘要统计数据是微不足道的。查看数据帧的describe()
方法和spark-sql中的percentile_approx
。