第五课_SparkSQL基本原理

第五课_SparkSQL基本原理的相关问题都在下面进行提问回帖
1、大家在这个帖子上回复自己想要提的问题。(相同的问题,请点赞表示自己关注这个问题,不用重复提问)
2、提出的问题,老师在直播课的最后30分钟统一回答。
3、课后会整理出参考答案,给每个问题回帖。

vv哥哥

赞同来自:

spark 的源码解读在哪节课里介绍呢? PPT里有内容,但是看离线的视频第3课和第4课貌似都没有讲

过江小卒

赞同来自:

老师,我的spark-shell为什么必须指定 mysql的驱动包,否则报错, spark-shell --jars /usr/local/Hive-0.13.1/lib/mysql-connector-java-5.1.17.jar

930523

赞同来自:

在idea里面把SparkPi的代码打码jar包通过spark-submit提交作业运行SparkPi的时候报错,用yarn logs 把日志下载下来报错如下,请问老师这什么问题? 17/04/20 07:01:37 ERROR yarn.ApplicationMaster: Uncaught exception: 27java.lang.SecurityException: Invalid signature file digest for Manifest main attributes 28at sun.security.uil.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:286)  

waistcoat100

赞同来自:

1.请问在实际生产环境中,hadoop一般是直接部署在物理机上,还是先用vmware vSphere做虚拟化,再部署?方案跟规模有关吗? 2.目前查到的教程都说当添加节点时,需要改配置,重启集群,有没有不重启集群的动态添加节点的办法?

liuzhixin137 - 见习魔法师

赞同来自:

spark sql 中,   val a = sqlContext.sql("select count(*) from tb")   假如这个值是3   请问我如何能通过 a 这个变量取出来这个 3 呢

哈哈雪月

赞同来自:

老师,我工作中spark使用sbt sparkSubmit提交到集群运行的:我在写udf时候 有时候是:def a(m) = {println(m)} val aUDF = udf(a _) 在集群运行会报错: 无法 初始化   然而,我如果写成: val aUDF = udf{ m => { println(m) }} 这样就没有问题,我想问下这是什么情况啊,是什么原因造成的

930523

赞同来自:

老师把spark源代码分享一下可以不?

nj_alan

赞同来自:

spark sql区别于关系数据库的使用场景

贰怪兽lyn

赞同来自:

一个spark程序里只能存在一个sparkContext,能同时存在多个sqlContext吗?使用的相同的sparkContext生成的

allen_cdh

赞同来自:

cm安装用tar包好还是rmp包好。tar包解压安装支持cm版本升级吗?

run_psw

赞同来自:

spark  scala  和  java  打包命令给个案例,然后,比如说要看sparkcontext依赖那些jar?怎么看啊?

frmark

赞同来自:

1.程序在本地是可以正常运行的,但是由于放到不同版本CDH或HDP的生产环境中,会存在很多关于jar包冲突,或者缺少类的错误,这种有没有终极解决方案,难道是把依赖打到同一个jar中吗? 2.spark on yarn中,spark.yarn.jar是必须指定的吗,如果不指定会出现什么情况,其实就是这个jar包的作用是什么?

dragonwjc

赞同来自:

老师,我在使用yarn-client方式运行spark程序,提示AM的物理内存用了很少,但是vm用了2.3G,而实际vm只有2.1G,导致yarn把这个container给kill了。我想问下,物理内存哪个参数调整,vm哪个参数调整?我怎么能增大vm的大小呢?

tl_oni

赞同来自:

 
 
老师:我读多个表,运行没有错误,但这样写合理吗?
 main(args: Array[String]) {
  val sparkSession = SparkSession.builder()
    .master("local")
    .appName("MongoSparkConnectorIntro")
    .config("spark.mongodb.input.uri", "mongodb://mongo:mongo@192.168.140.100:27028/efile.file.info")
    .config("spark.mongodb.output.uri", "mongodb://192.168.140.100:27028/sparkDB.characters")
    .getOrCreate()
  val sc=sparkSession.sparkContext
  val rdd1 = MongoSpark.load(sparkSession)
  println("读默认库表:efile.file.info")

  rdd1.show();
  println(rdd1.count)

  println("修改读取目标库表")
  val readConfig=ReadConfig(Map("uri"->"mongodb://super:super@192.168.140.100:27028","database" -> "gongan","collection"->"aaa"))
  //val rowRdd = sc.loadFromMongoDB(readConfig))
  val rowRdd = MongoSpark.load(sc, readConfig)
  println(rowRdd.count)
  for (data <- rowRdd) {
    println(data)
  }
   ///-------------------------
   ///分析处理并聚合
  ///-------------------
  //println("向默认库表写:方法一:sparkDB.characters1")
 // sparkSession.sparkContext.parallelize((1 to 10).map(i => Document.parse(s"{test: $i}"))).saveToMongoDB()
 // println("向默认库表写:方法二:sparkDB.characters2 ")
 // MongoSpark.save(rdd1)
   println("修改写目标的库表 ")
  val writeConfig = WriteConfig(Map("uri"->"mongodb://super:super@192.168.140.100:27028","database" -> "gongan","collection" -> "spark", "writeConcern.w" -> "majority"), Some(WriteConfig(sc)))
  val sparkDocuments = sc.parallelize((1 to 10).map(i => Document.parse(s"{spark: $i}")))
  MongoSpark.save(sparkDocuments, writeConfig)

}

allen_cdh

赞同来自:

之前您将过shuffle是写磁盘文件,然后通过网络传输的。 这里的实现为什么不是把数据放在内存中,通过rpc传输数据呢?

JackLiang

赞同来自:

spark sql与Impala,hive,pig的 对比?

zqiu9958

赞同来自:

再讲讲yarn-cluster模式怎么用

run_psw

赞同来自:

老师, mvn  打包 命令  直接 mvn package 就行了吗?

nimitz_007

赞同来自:

董老师,我调用spark.read.jdbc 读取一张mysql表,并用write.save()保存出错。我尝试读取一张200MB左右的表没有问题。如果我读一张700MB的表则会报错(必现)。报错信息如下: ExecutorLostFailure (executor 0 exited caused by one of the running tasks) Reason: Executor heartbeat timed out after 158749 ms ExecutorLostFailure (executor 0 exited caused by one of the running tasks) Reason: Remote RPC client disassociated. Likely due to containers exceeding thresholds, or network issues. Check driver logs for WARN messages. 失败四次后,任务被终止。我用的是spark-shell模式(为了调试)。也试过用yarn-client模式都一样 请问这是为什么?

哈哈雪月

赞同来自:

老师,我工作中spark使用sbt sparkSubmit提交到集群运行的:我在写udf时候 有时候是:def a(m) = {println(m)} val aUDF = udf(a _) 在集群运行会报错: 无法 初始化 然而,我如果写成: val aUDF = udf{ m => { println(m) }} 这样就没有问题,我想问下这是什么情况啊,是什么原因造成的 公司由于保密原因,没法直接贴出来,主要的原因是def的function找不到,然后导致aUDF没法init

过江小卒2

赞同来自:

老师能讲下上次课是怎么自动生成数据的吗,python不熟

掂吾掂

赞同来自:

HBase也属于列式储存的代表..请问老师在课程里面为什么不讲HBase?

要回复问题请先登录注册