java - JdbcRDD错误: connection established data fetched partially

标签 java mysql scala apache-spark

我尝试连接到 mysql 数据库,以获取表记录。我可以建立连接,也可以获取 10 条记录,但代码突然崩溃了。我不知道为什么。 PS:我是 scala 的新手...任何帮助将不胜感激。

object jdbcConnect {
 def main(args: Array[String]) {

  val url="jdbc:mysql://127.0.0.1:3306/mydb" 
   val username = "root"
       val password = "token_password"
       Class.forName("com.mysql.jdbc.Driver").newInstance


       //DriverManager.registerDriver(new com.mysql.jdbc.Driver());

       val conf = new SparkConf().setAppName("JDBC RDD").setMaster("local[2]").set("spark.executor.memory", "1g")
       val sc = new SparkContext(conf)

       val myRDD = new JdbcRDD( sc, () => DriverManager.getConnection(url,username,password) ,
      "select s_Id,issue_date from store_details limit ?, ?",
      0, 10, 1, r => r.getString("s_Id") + ", " + r.getString("issue_date"))

       myRDD.foreach(println)
       myRDD.saveAsTextFile("C:/jdbcrddexamplee")

  }
}

ERROR 17/07/16 02:32:24 ERROR Executor: Exception in task 0.0 in stage 1.0 (TID 1) ExitCodeException exitCode=1: ChangeFileModeByMask error (5): Access is denied. at org.apache.hadoop.util.Shell.runCommand(Shell.java:582) at org.apache.hadoop.util.Shell.run(Shell.java:479) at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:773) at org.apache.hadoop.util.Shell.execCommand(Shell.java:866) at org.apache.hadoop.util.Shell.execCommand(Shell.java:849) at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:733) at org.apache.hadoop.fs.RawLocalFileSystem$LocalFSFileOutputStream.(RawLocalFileSystem.java:225) at org.apache.hadoop.fs.RawLocalFileSystem$LocalFSFileOutputStream.(RawLocalFileSystem.java:209) at org.apache.hadoop.fs.RawLocalFileSystem.createOutputStreamWithMode(RawLocalFileSystem.java:307) at org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:296) at org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:328) at org.apache.hadoop.fs.ChecksumFileSystem$ChecksumFSOutputSummer.(ChecksumFileSystem.java:398) at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:461) at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:440) at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:911) at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:804)

最佳答案

这似乎是一个权限错误。 我的愚蠢...

确保以管理员身份运行任何程序。 虽然我会建议使用数据框而不是 RDD :D

谢谢

关于java - JdbcRDD错误: connection established data fetched partially,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45127817/

相关文章:

java - Android,解析来自同一类的对象中的文本文件时出现问题

java - 反序列化 JSON 时如何删除或忽略 Java 类型提示?

java - 在数据存储 View 中找不到使用 objectify 持久化的实体

Mysql 选择具有相同 id 的行(3 个表)

scala - 重用 akka-stream 流的优雅方式

java - 设置边距时,相对布局中的按钮会被压扁

php - 使用一个查询更新 MySQL 中的 2 个或更多列

mysql - 在sql中创建最优查询

斯卡拉玩 2.0。编译错误: IO error while decoding

Java/Scala Kafka Producer 不向主题发送消息