在Sqoop往mysql导出数据的时候报了这个错误,一开始还以为是jar包没有打进去或者打错位置了,未解便上网查询。

Error reading from database: java.sql.SQLException: Streaming result set com.mysql.jdbc.RowDataDynamic@27ce24aa is still active. No statements may be issued when any streaming result sets are open and in use on a given connection. Ensure that you have called .close() on any active streaming result sets before attempting more queries.
java.sql.SQLException: Streaming result set com.mysql.jdbc.RowDataDynamic@27ce24aa is still active. No statements may be issued when any streaming result sets are open and in use on a given connection. Ensure that you have called .close() on any active streaming result sets before attempting more queries.

1.通过百度寻找此问题的解决方式,找到了如下答案:

由于mysql-connector-java的bug造成的,出错时我用的是mysql-connector-java-5.1.12-bin.jar,更新成mysql-connector-java-5.1.32-bin.jar就可以了。

但是我通过wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.32.tar.gz,下载了tar.gz包 解压之后得到mysql-connector-java-5.1.32-bin.jar

注意mysql-connector-java-5.1.32-bin.jar,看见没有是-bin.jar,maven项目的pom.xml中添加mysql依赖,会产出mysql-connector-java-5.1.32.jar 没有-bin,注意这是两个不同的包。

千万不要直接从项目中拷过来。。。最后替换掉sqoop目录原有jar包,我的目录是/opt/software/sqoop/lib/

但是!!!并没有解决这个问题。。。

2. 科学上网

老大看我焦头烂额却没有丝毫进展,告知我要科学上网,这种问题要到墙外查阅资料。我也知道,但是最近vpn好笑来月经了似的翻不出去了。。。

大哥最后出马,在StackOverFlow上找到了答案:

Try including the option --driver com.mysql.jdbc.Driver in the import command.

Worked for me...Thanks Man

sqoop export \
--connect $STAT_JDBC_CONNECT \
--username $JDBC_USERNAME \
--password $JDBC_PASSWORD \
--table $TABLE \
--update-mode allowinsert \
--driver com.mysql.jdbc.Driver \
--export-dir $SQOOP_HDFS_RESULT_DAY \
--columns stat_ds,command,answer,counts

3.解决这个问题,便深知科学上网的重要性,便开始研究vpn为何失效翻不过去长城?

我用的工具ShadowSocks,找了半天没有类似的经验,就把电脑关机。重启之后在没有改任何配置的前提下就好了!

4.SparkSql中使用round内置函数完成四舍五入保留两位小数

  /**
* 统计音箱型号分布情况
*
* @param dataFrame
* @return
*/
def echoModelDistributeStat(dataFrame: DataFrame, preDay: String): List[String] = {
var numdf = dataFrame.groupBy("model").agg(count("model").as("model_count"))
// 统计出总共的设备数
var sumdf = numdf.groupBy().agg(sum("model_count"))
// 计算设备型号的总数量
var modelSum = sumdf.collect()(0)(0)
// 计算出需要的的DF
var modelInfo = numdf.select(numdf("model"), numdf("model_count"), (numdf("model_count") / modelSum * 100).as("model_percent"))
modelInfo.registerTempTable("m")
// 将日期转换为时间戳
val timeStamp = TimeUtils.getTimeStamp(preDay + " " + Constant.TIME_ZERO)
val timeDf = modelInfo.sqlContext.sql("select " + timeStamp + " as stat_ds,m.model,m.model_count,round(m.model_percent,2) as model_percent from m")
// 将DF转成List[Row]的形式
val list = timeDf.collect().toList
// 将List[Row]转为List[String]
val listStr = listRowConvertListStr(list)
return listStr
}

  

java.sql.SQLException: Streaming result set com.mysql.jdbc.RowDataDynamic@27ce24aa is still active. No statements may be issued when any streaming result sets are open and in use on a given connection的更多相关文章

  1. java.sql.SQLException: No suitable driver found for jdbc:hive://localhost:10000/default

    error: java.sql.SQLException: No suitable driver found for jdbc:hive://localhost:10000/default at ja ...

  2. java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/

    出现这个异常原因可能很多: 1.编码问题 2.没有加载类驱动:换一种数据库的连接方式,就忘了这个:Class.forName(driverclass); import java.io.IOExcept ...

  3. Spark on Yarn:java.sql.SQLException: No suitable driver found for jdbc:microsoft:sqlserver://localhost\\db_instance_name:1433;databaseName=db_name

    本文只是针对当前特定环境下,出现的问题找不到sqljdbc驱动的案例.具体出现原因,可能是spark版本问题,也可能是集群配置问题. yarn-client方式下: 通过--jars参数指定驱动文件位 ...

  4. Oracle java.sql.SQLException: 数字溢出

    六月 30, 2016 5:47:47 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinit ...

  5. mybatis 执行查询时报错 【Error querying database. Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Cannot find class: 】

    org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.sql.SQLE ...

  6. 吴裕雄--天生自然 JAVA开发学习:解决java.sql.SQLException: The server time zone value报错

    这个异常是时区的错误,因此只你需要设置为你当前系统时区即可,解决方案如下: import java.sql.Connection ; import java.sql.DriverManager ; i ...

  7. java.sql.SQLException: 关闭的连接 解决办法

    程序如果长时间不进行数据库操作,那么数据源中的 Connection 很可能已经断开.其原因有可能是防火墙,或者连接的数据库设置的超时时间.这里使用的是 C3P0 连接 oracle 数据库,引起的异 ...

  8. mybatis项目报错:java.sql.SQLException: ORA-00911: 无效字符 解决方法

    如果你用java写程序访问数据库,出现这个问题:java.sql.SQLException: ORA-00911: 无效字符 at oracle.jdbc.driver.DatabaseError.t ...

  9. java中mysql查询报错java.sql.SQLException: Before start of result set

    异常:java.sql.SQLException: Before start of result set 解决方法:使用rs.getString();前一定要加上rs.next(); sm = con ...

随机推荐

  1. 理解javascript函数调用和“this”

    http://blog.csdn.net/littlechang/article/details/8180550

  2. typescript 实现函数重载

    class Demo { // #region 声明 log() : void; log(arg1: string): void; log(arg1: number, arg2: string): v ...

  3. HDU 1058 Humble Numbers (动规+寻找丑数问题)

    Humble Numbers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T ...

  4. WPF进阶之接口(3):INotifyPropertyChanged,ICommand

    INotifiPropertyChanged . 作用:向客户端发出某一属性值已更改的通知.该接口包含一个PropertyChanged事件成员(MSDN的解释) INotifyPropertyCha ...

  5. 自己制作一个链表用来存储列表信息,并查找当前id信息,找上一条信息,下一条信息(信息浏览的时候方便使用)

    偶然看到某些网站在新闻详情中 ,往往是需要根据当前信息id获取到上一条信息和下一条信息的,而通常我们的做法是先获取当前信息,再获取上一条信息,再获取下一条信息,就需要发送三次查询才能够得到这些信息,一 ...

  6. 本地存储数据库indexedDB实现离线预览的功能

    今天在学习<高级JS编程>,看到离线存储,cookie和session都十分的熟悉,但是书中还提到了indexedDB和webSQL(已废弃),indexedDB可以像mysql一样建表, ...

  7. 《C++ Primer Plus》第5章 循环和关系表达式 学习笔记

    C++提供了3种循环: for 循环. while 循环 和 do while 循环 .如果循环测试条件为 true 或非零,则循环将重复执行一组指令: 如果测试条件为 false 或 0 , 则结束 ...

  8. 问道游戏-寻路CALL心得

    寻路CALL查找几种方法 第一种 bp send 在小地图上点击重点.看看是否断下 断下这是最简单的 第二种 查找用户当前坐标内存地址下写入断点 通过堆栈追溯 运气好也可以找到 第三种 查找终点坐标地 ...

  9. Linuxyum源切换阿里云软件源

    备份本机软件源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 下载新的CentOS-Bas ...

  10. ubuntu中vi编辑器键盘错乱的问题

    Ubuntu安装完成后vi编辑器键盘不能正常使用,使用下面方法解决: 编辑文件/etc/vim/vimrc.tiny,将“compatible”改成“nocompatible”非兼容模式: 并添加一句 ...