在sparkR在配置完成的基础上,本例采用Spark on yarn模式,介绍sparkR运行的一个例子。

在spark的安装目录下,/examples/src/main/r,有一个dataframe.R文件。该文件默认是在本地的模式下运行的,不与hdfs交互。可以将脚本进行相应修改,提交到yarn模式下。

在提交之前,要先将${SPARK_HOME}/examples/src/main/resources/people.json 文件上传到hdfs上,我上传到了hdfs://data-mining-cluster/data/bigdata_mining/sparkr/people.json 目录下。

  1. dataframe.R文件内容:
  1. # Convert local data frame to a SparkR DataFrame
  2. df <- createDataFrame(sqlContext, localDF)
  3. # Print its schema
  4. printSchema(df)
  5. # root
  6. #  |-- name: string (nullable = true)
  7. #  |-- age: double (nullable = true)
  8. # Create a DataFrame from a JSON file
  9. #path <- file.path("hdfs://data-mining-cluster/data/bigdata_mining/sparkr/people.json")
  10. path <- file.path("hdfs://data-mining-cluster/data/bigdata_mining/sparkr/people.json")
  11. peopleDF <- read.json(sqlContext, path)
  12. printSchema(peopleDF)
  13. # Register this DataFrame as a table.
  14. registerTempTable(peopleDF, "people")
  15. # SQL statements can be run by using the sql methods provided by sqlContext
  16. teenagers <- sql(sqlContext, "SELECT name FROM people WHERE age >= 13 AND age <= 19")
  17. # Call collect to get a local data.frame
  18. teenagersLocalDF <- collect(teenagers)
  19. # Print the teenagers in our dataset
  20. print(teenagersLocalDF)
  21. # Stop the SparkContext now
  22. sparkR.stop()

sparkR  --master yarn-client dataframe.R  这样就可以将任务提交到yarn上了。

另外,有些集群会报如下错误:

  1. 16/06/16 11:40:35 ERROR RBackendHandler: json on 15 failed
  2. Error in invokeJava(isStatic = FALSE, objId$id, methodName, ...) :
  3. java.lang.RuntimeException: Error in configuring object
  4. at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:109)
  5. at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:75)
  6. at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:133)
  7. at org.apache.spark.rdd.HadoopRDD.getInputFormat(HadoopRDD.scala:185)
  8. at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:198)
  9. at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239)
  10. at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237)
  11. at scala.Option.getOrElse(Option.scala:120)
  12. at org.apache.spark.rdd.RDD.partitions(RDD.scala:237)
  13. at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35)
  14. at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239)
  15. at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237)
  16. at scala.Option.getOrElse(Option.scala:120)
  17. at org.apache.spark.rdd.RDD.partitions(
  18. Calls: read.json -> callJMethod -> invokeJava

这种情况一般是由于启用了lzo压缩导致的。可以通过--jars  添加lzo的jar包,就可以了。例如:sparkR  --master yarn-client dataframe.R --jars /usr/local/Hadoop/share/hadoop/common/hadoop-lzo-0.4.20-SNAPSHOT.jar

sparkR的一个运行的例子的更多相关文章

  1. [Linux][Hadoop] 运行WordCount例子

    紧接上篇,完成Hadoop的安装并跑起来之后,是该运行相关例子的时候了,而最简单最直接的例子就是HelloWorld式的WordCount例子.   参照博客进行运行:http://xiejiangl ...

  2. Spring-Context之一:一个简单的例子

    很久之前就想系统的学习和掌握Spring框架,但是拖了很久都没有行动.现在趁着在外出差杂事不多,就花时间来由浅入深的研究下Spring框架.Spring框架这几年来已经发展成为一个巨无霸产品.从最初的 ...

  3. 一个UWSGI的例子

    摘要:uwsgi执行顺序:启动master进程,执行python脚本的公共代码(import同一层).然后生成worker进程,uwsgi.post_fork_hook=init_functions, ...

  4. 扩展Python模块系列(二)----一个简单的例子

    本节使用一个简单的例子引出Python C/C++ API的详细使用方法.针对的是CPython的解释器. 目标:创建一个Python内建模块test,提供一个功能函数distance, 计算空间中两 ...

  5. fitnesse - 一个简单的例子(slim)

    fitnesse - 一个简单的例子(slim) 2017-09-30 目录1 编写测试代码(Fixture code)2 编写wiki page并运行  2.1 新建wikiPage  2.2 运行 ...

  6. Struts2的配置和一个简单的例子

    Struts2的配置和一个简单的例子 笔记仓库:https://github.com/nnngu/LearningNotes 简介 这篇文章主要讲如何在 IntelliJ IDEA 中使用 Strut ...

  7. 跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击

    跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击 一.总结 一句话总结:比如用户留言功能,用户留言中写的是网页可执行代码,例如js代码,然后这段代码在可看到这段留言的不同一户的显示上就会 ...

  8. 从一个简单的例子谈谈package与import机制

    转,原文:http://annie09.iteye.com/blog/469997 http://blog.csdn.net/gdsy/article/details/398072 这两篇我也不知道到 ...

  9. OpenCV学习(2)——一个简单的例子

    光说不练假把式,来看一个简单的例子,了解了解OpenCV.这个小demo没有几行代码,作用是显示项目目录下面的一张图片. #include <opencv2\opencv.hpp> #in ...

随机推荐

  1. jQuery学习笔记(简介,选择器)

    jQuery优势 1. 强大的选择器.jQuery允许开发者使用从CSS1到CSS3几乎所有的选择器,以及jQuery独创的高级而复杂的选择器. 2. 出色的DOM操作封装 3. 可靠的事件处理机制 ...

  2. Android-Cannot merge new index 66195 into a non-jumbo instruction的解决办法

    转载请注明来源:http://blog.csdn.net/goldenfish1919/article/details/33729679 用eclispe打包的时候报错: [2014-06-23 13 ...

  3. [svc]为何linux ext4文件系统目录默认大小是4k?

    linux ext4普通盘为什么目录大小是4k? Why does every directory have a size 4096 bytes (4 K)? To understand this, ...

  4. [svc]ansible自动化模块

    ansible命令执行模块 - command模块 [执行远程命令] $ ansible n1 -m command -a 'uname -n' - raw模块 [类似于command模块.支持管道传 ...

  5. error: unpacking of archive failed on file /usr/sbin/zabbix_agent;592e5bc3: cpio: open

    # lsattr /usr/ ----------I--e- /usr/lib64 ----------I--e- /usr/bin -------------e- /usr/libexec ---- ...

  6. Fluent UDF【5】:第一个UDF

    这里以一个简单的初始化案例来描述UDF的使用过程. 0 Fluent中的Patch Fluent中提供了全域初始化以及局部Patch功能.对于整体区域的全局初始化可以采用starndard及hybri ...

  7. (原创)C++11改进我们的程序之右值引用

    本次主要讲c++11中的右值引用,后面还会讲到右值引用如何结合std::move优化我们的程序. c++11增加了一个新的类型,称作右值引用(R-value reference),标记为T & ...

  8. 【ActiveMQ】Spring Jms集成ActiveMQ学习记录

    Spring Jms集成ActiveMQ学习记录. 引入依赖包 无论生产者还是消费者均引入这些包: <properties> <spring.version>3.0.5.REL ...

  9. java 多线程12 : 无锁 实现CAS原子性操作----原子类

    由于java 多线程11:volatile关键字该文讲道可以使用不带锁的情况也就是无锁使变量变成可见,这里就理解下如何在无锁的情况对线程变量进行CAS原子性及可见性操作 我们知道,在并发的环境下,要实 ...

  10. 详解Android开发中Activity的四种launchMode

    Activity栈主要用于管理Activity的切换.当使用Intent跳转至某个目标Activity,需要根据目标Activity的加载模式来加载. Activity一共有以下四种launchMod ...