R语言与DataFrame (4)

在R中使用DDF,我们不需要修改之前任何的代码,并且绕过Hadoop的绝对限制,就可以让data frame格式的数据,自动获得分布式处理的能力!

# 创建 DDF 管理器来运行Spark引擎 dm <- DDFManager("spark") # 从表格中创建 DDF ddf <- sql2ddf(dm, "select * from mtcars") /*Basic Stats*/ # 返回行/列的值 ncol(ddf) nrow(ddf) # 在 DDF 上进行运行标准汇总 summary(ddf)

更多具体操作可以参考官方指南

DataFrame在R、Python和Spark三者中的联系 操作RPythonSpark
  base   Pandas   spark SQL  
读取csv   read.csv()   read_csv()   spark-csv  
计数   nrow()   pandasDF.count()   sparkDF.count()  
分片   head(data,5)   pandasDF.head(5)   sparkDF.show(5)  
推断类型   自动推断   自动推断   默认为string类型  
标准差计算中的NaN处理   视为NA   自动排除   视为NaN  
特征工程   dplyr::mutate()   pandasDF[\'new\']   sparkDF.withColumn()  
DataFrame 之我见

处理数据的第一语言还是 SQL语句,因为SQL是DSL,这样就对使用者没有Python或者R的要求,也方便与DBA的维护。在R中可以使用 sqldf 通过SQL直接操作DataFrame,在Python中可以使用 pysqldf。

处理数据的第二语言则是 tidyverse 或者 pandas,使用这样的链式调用方法可以提升数据流的处理效率,规避一些原生SQL在不同数据库中执行情况不同或者可读性较差的问题。

处理数据的第三语言则是 data.table 或者 scala,使用这样高性能的方法可以在关键步骤提升数据处理效率到极致,不过会牺牲一部分维护性。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgggwj.html