第五课Spark SQL与DataFrame

第五课Spark SQL与DataFrame的相关问题都在下面进行提问回帖
1、大家在这个帖子上回复自己想要提的问题。(相同的问题,请点赞表示自己关注这个问题,不用重复提问)
2、提出的问题,老师在直播课的最后30分钟统一回答。
3、课后会整理出参考答案,给每个问题回帖。
欢迎吐槽《第五课Spark SQL与DataFrame》!!!
请大家点击下面链接进入问卷调查: 
http://wj.qq.com/s/858398/c1e3
或扫描二维码
你们的回复令我们做得更好~

1477401929034.png

 

狂龙

赞同来自: icichacici mark_meng

董老师,task个数从151修改为36后,怎么还是151呢?  

icichacici - 80后

赞同来自: 狂龙 mark_meng

下面是两个rdd的join的结果,我现在想用中间的值进行倒排,我不知道怎么写? (3184020,1,15922811704) (672890,112,13661908821) (3119990,1,15011377235) (2363360,2,17875041762) (1339720,1,15008444733) (1212710,5,15868861350) (1891540,4,13818116064) (1704010,2,18621113477) (1856640,1,18158576294) (3269000,1,15955206929)

Dong - Hulu

赞同来自: ljc520313 zixu4728

请教一个问题,我们采用了horton works的平台,在设置executor cores,无论设置为几,都只用一个核,不知董老师是否遇到?    

@CrazyChao - 人生不止眼前的苟且,还有诗和远方的田野!^.^

赞同来自: crazyant mark_meng

建议老师后面出一个数据可视化的课程,学习一套东西整个分析流程自己就可以搭起来了!

tianling

赞同来自: cathy_xu

请问董老师,是否有一些课堂上练习项目的代码,我们可以参考。能否提供一下代码的git下载的地址,谢谢  

lcg_1023 - 如:80后IT男..

赞同来自: mark_meng

在 yarn-client模式下运行,exector-memory为2G driver-memory为1G, 出现如下异常:  
YARN executor launch context:
  env:
    CLASSPATH -> {{PWD}}<CPS>{{PWD}}/__spark__.jar<CPS>$HADOOP_CONF_DIR<CPS>$HADOOP_COMMON_HOME/share/hadoop/common/*<CPS>$HADOOP_COMMON_HOME/share/hadoop/common/lib/*<CPS>$HADOOP_HDFS_HOME/share/hadoop/hdfs/*<CPS>$HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*<CPS>$HADOOP_YARN_HOME/share/hadoop/yarn/*<CPS>$HADOOP_YARN_HOME/share/hadoop/yarn/lib/*<CPS>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*<CPS>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*
    SPARK_LOG_URL_STDERR -> http://node-003:8042/node/cont ... -4096
    SPARK_YARN_STAGING_DIR -> .sparkStaging/application_1477380530193_0001
    SPARK_YARN_CACHE_FILES_FILE_SIZES -> 181330185
    SPARK_USER -> root
    SPARK_YARN_CACHE_FILES_VISIBILITIES -> PUBLIC
    SPARK_YARN_MODE -> true
    SPARK_YARN_CACHE_FILES_TIME_STAMPS -> 1476958415955
    SPARK_LOG_URL_STDOUT -> http://node-003:8042/node/cont ... -4096
    SPARK_YARN_CACHE_FILES -> hdfs://node-001:8020/system/spark/jar/spark-assembly-1.6.2-hadoop2.6.0.jar#__spark__.jar

  command:
    {{JAVA_HOME}}/bin/java -server -XX:OnOutOfMemoryError='kill %p' -Xms2048m -Xmx2048m -Djava.io.tmpdir={{PWD}}/tmp '-Dspark.driver.port=35328' -Dspark.yarn.app.container.log.dir=<LOG_DIR> org.apache.spark.executor.CoarseGrainedExecutorBackend --driver-url spark://CoarseGrainedScheduler@192.168.10.201:35328 --executor-id 1 --hostname node-003 --cores 1 --app-id application_1477380530193_0001 --user-class-path file:$PWD/__app__.jar 1> <LOG_DIR>/stdout 2> <LOG_DIR>/stderr
===============================================================================
      
16/10/25 15:38:28 INFO impl.ContainerManagementProtocolProxy: Opening proxy : node-003:59597
16/10/25 15:38:28 INFO impl.ContainerManagementProtocolProxy: Opening proxy : node-002:38747
16/10/25 15:48:44 INFO yarn.YarnAllocator: Completed container container_1477380530193_0001_01_000003 on host: node-002 (state: COMPLETE, exit status: 50)
16/10/25 15:48:44 WARN yarn.YarnAllocator: Container marked as failed: container_1477380530193_0001_01_000003 on host: node-002. Exit status: 50. Diagnostics: Exception from container-launch.
Container id: container_1477380530193_0001_01_000003
Exit code: 50
Stack trace: ExitCodeException exitCode=50: 
	at org.apache.hadoop.util.Shell.runCommand(Shell.java:601)
	at org.apache.hadoop.util.Shell.run(Shell.java:504)
	at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:786)
	at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:213)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302)
	at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)


Container exited with a non-zero exit code 50

16/10/25 15:48:44 INFO yarn.YarnAllocator: Completed container container_1477380530193_0001_01_000002 on host: node-003 (state: COMPLETE, exit status: 50)
16/10/25 15:48:44 WARN yarn.YarnAllocator: Container marked as failed: container_1477380530193_0001_01_000002 on host: node-003. Exit status: 50. Diagnostics: Exception from container-launch.
Container id: container_1477380530193_0001_01_000002

狂龙

赞同来自: mark_meng

老师,文本文件格式转为parquet格式,应怎么转呢?  

笑着走下去

赞同来自: Riordon

如何与sparksql通信?就像hive可以启动thriftserver,然后可以通过thrift协议来发送命令操纵hive。sparksql是否有提供类似的方式? 

乖乖燕杰

赞同来自:

老师我想问下如果我们系统中需要同时处理两种类型数据,一种是实时由kafka发送来的,还有一种是离线数据按搞定周期放到hdfs或是ftp上的文件,用spark 或spark streaming能处理这两种类型吗?

乖乖燕杰

赞同来自:

还想问下 在一个应用系统中,有很多其他逻辑是不需要转换为RDD处理的,比如说有一个线程要循环扫描一个目录,如果目录中扫描到有文件就把文件全换成RDD,再对这些RDD进行后续的处理,这种可以用spark来做吗?像storm中会有prepare这种方法可以处理其他业务如初始化参数或从数据库加载配置等,这种业务处在spark程序中的什么位置?

快乐思想家

赞同来自:

现在看到的程序都是通过spark-submit进行提交的,但我们现在的程序大部分是跑在web端,想问下老师,在实际的环境,是怎么进行触发并协作的?怎么获得执行结果,异步方式?写数据库?

ioridong

赞同来自:

请问老师,spark-env.sh 和  spark-defaults.conf 两个配置文件有什么区别? 各自的用途是什么? spark应用程序、spark-shell、spark-submit 是如何使用这两个配置文件的? 另外:SPARK_WORKER_MEMORY 和 SPARK_EXECUTOR_MEMORY 的设置有没有什么建议? 比如要设置成一样,或者worker要比executor大? 最小值、最大值有何限制? 同样driver-memory内存设置有什么建议?  

ioridong

赞同来自:

请问董老师,现对local和standalone运行模式有些疑惑: 1. 用IDEA运行视频中的wordcount例子,采用Local模式,发现在spark服务没有启动的情况下,也是能正常运行。 这时候是spark应用程序自己去调用executor的吗? 但这时spark应用程序怎么能获取到spark的配置信息? 2. 把setMaster(Local)修改成setMaster("spark://主机名:7077"),再执行,这时候运行模式是否就是standalone模式? 3. Standalone模式是否需要启动yarn吗? 采用Spark-submit –master spark://主机名:7077 的方式执行spark应用程序,在没有启动yarn的情况下,执行程序一直报以下错误,只能kill掉: WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
sparkerror.png
 

SuperManBack

赞同来自:

董老师,sparkstring遇到一个问题,一个topic的数据大约每秒钟12W条,另一个每分钟几千条,但是这俩需要进行unit操作一进行unit有很大的延迟,请问有什么处理办法吗
1A0A.tmp_.jpg
77F0.tmp_.jpg
 

周榆杰

赞同来自:

麻烦董老师帮忙看下是什么错误。提交命令 ./spark-submit --master yarn-cluster --class org.zhouyujie.WordCount --name WordCount --queue A.A1 /home/spark_scala.jar,之前有说版本兼容性问题,我的环境是CDH5.3.1-hadoop版本2.5.0,spark1.6,但是官网没有spark-assembly-1.6.1-hadoop2.5.0.jar.介于向下兼容考虑下载了spark-assembly-1.6.1-hadoop2.6.0.jar,但是提交后有显示截图的问题。

weicm

赞同来自:

spark-shell中可以直接用: sqlContext.sql("select * from table") 在程序里面直用同样的做法报表找不到! 请问董老师,怎么在程序中直接访问SparkSql的表?

xiaohe001

赞同来自:

Hive的前景如何? 是否有必要好好学习这门技能?

风雨之间

赞同来自:

spark中parquet文件只能用spark sql来读取吗,能用spark context来读取吗?

jerry138133

赞同来自:

sqlContext和sparkSession有什么异同?

cathy_xu

赞同来自:

mongodb 集群上面是否也可以用spark来进行运算?

李海磊

赞同来自:

dataframe 和SQL有啥区别啊?也是直接在交互模式下使用的吗?还是有自己的api接口包啊?

陈保贺 - 计算机硕士在读 @Beihang

赞同来自:

子partation之间有shuffle那怎么通过重新生成来容错呢  

陈保贺 - 计算机硕士在读 @Beihang

赞同来自:

父子partation之间有shuffle那怎么通过重新生成来容错呢

shareshow

赞同来自:

DataFrame或者DataSet API有例子吗?

ShadowFiend

赞同来自:

sparksql 怎么和sparkstreaming整合,

wemike

赞同来自:

能否像oracle有工具查看sparksql的执行计划

hddata123

赞同来自:

董老师,我在安装hadhoop,最后启动datanode时,报以下错误: 网上说因为两个VERSION不一致导致的,但是这里两个VERSION是一样的

2016-10-25 22:01:59,858 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to VM-39-239-debian/10.154.39.239:8020. Exiting.  java.io.IOException: All specified directories are failed to load.     at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:478)     at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1342)     at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1308)     at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:314)     at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:226)     at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:867)     at java.lang.Thread.run(Thread.java:745) 2016-10-25 22:01:59,859 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Ending block pool service for: Block pool <registering> (Datanode Uuid unassigned) service to VM-39-239-debian/10.154.39.239:8020 2016-10-25 22:01:59,860 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to VM-44-126-debian/10.154.44.126:8020. Exiting.  java.io.IOException: All specified directories are failed to load.     at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:478)     at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1342)     at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1308)     at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:314)     at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:226)     at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:867)     at java.lang.Thread.run(Thread.java:745) 2016-10-25 22:01:59,860 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Ending block pool service for: Block pool <registering> (Datanode Uuid unassigned) service to VM-44-126-debian/10.154.44.126:8020 2016-10-25 22:01:59,862 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Removed Block pool <registering> (Datanode Uuid unassigned) 2016-10-25 22:02:01,862 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Exiting Datanode 2016-10-25 22:02:01,863 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 0 2016-10-25 22:02:01,865 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG:  /************************************************************ SHUTDOWN_MSG: Shutting down DataNode at VM-215-49-debian/10.105.215.49 ************************************************************/  

xchao

赞同来自:

董老师,java程序怎么提交spark on yarn,不用spark shell脚本?

要回复问题请先登录注册