SparkR:数据科学家的新利器

  • 数据过滤:filter(), where()
  • 排序:sortDF(), orderBy()
  • 列操作:增加列- withColumn(),列名更改- withColumnRenamed(),选择若干列 -select()、selectExpr()。为了更符合R用户的习惯,SparkR还支持用$、[]、[[]]操作符选择列,可以用$<列名> <- 的语法来增加、修改和删除列
  • RDD map类操作:lapply()/map(),flatMap(),lapplyPartition()/mapPartitions(),foreach(),foreachPartition()
  • 数据聚合:groupBy(),agg()
  • 转换为RDD:toRDD(),toJSON()
  • 转换为表:registerTempTable(),insertInto()
  • 取部分数据:limit(),take(),first(),head()
  •  

    编程示例

    总体上看,SparkR程序和Spark程序结构很相似。

    基于RDD API的示例

    要基于RDD API编写SparkR程序,首先调用sparkR.init()函数来创建SparkContext。然后用SparkContext作为参数,调用parallelize()或者textFile()来创建RDD。有了RDD对象之后,就可以对它们进行各种transformation和action操作。下面的代码是用SparkR编写的Word Count示例: