实验5 Spark SQL编程初级实践

今天做实验【Spark SQL 编程初级实践】,虽然网上有答案,但在自己的环境下并不能够顺利进行

在第二题中,要求编程实现将 RDD 转换为 DataFrame。根据所谓标准答案,在进行sbt 打包时,报如下错误

[error] /home/hadoop/mycode/rddtodf/src/main/scala/rddtodf.scala:1: object types is not a member of package org.apache.spark.sql
[error] import org.apache.spark.sql.types._
[error]               ^
[error] /home/hadoop/mycode/rddtodf/src/main/scala/rddtodf.scala:2: object Encoder is not a member of package org.apache.spark.sql
[error] import org.apache.spark.sql.Encoder

……

截图:

根据错误描述可知,程序在第一行 import org.apache.spark.sql.types._ 处出错:types不是org.apache.spark.sql的成员

解决方案:

把程序每一行看作一个spark命令,在spark-shell一条一条地执行好了。。。

第三题【编程实现利用 DataFrame 读写 MySQL 的数据】

读取mysql?一定要用到 mysql-connector-java-xxx.jar 吧,但是答案中并未提及

查阅书籍了解到,需要把mysql的jar包放在 /usr/local/spark/jars/mysql-connector-java-xxx/文件夹下,其中/usr/local/spark是spark安装目录xxx是mysql jar包版本。

且启动Spark Shell时,须指定MySQL jar包,如图:

(表示命令还没有结束)

然后再把程序一条一条执行

执行结果:

可以看到,已经将新的两条数据插入到mysql数据库了

(用时:1小时30分钟)

原文地址:https://www.cnblogs.com/lzq666/p/10603269.html