我尝试连接到mysql数据库,以获取表记录。我可以建立连接,也可以获取10条记录,但突然代码崩溃了。我不知道为什么。 PS:我是斯卡拉的新手...任何帮助都将不胜感激。
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错误执行者:阶段1.0(TID 1)中任务0.0的异常 ExitCodeException exitCode = 1:ChangeFileModeByMask error(5):拒绝访问。在org.apache.hadoop.util.Shell.runCommand(Shell.java:582) 在org.apache.hadoop.util.Shell.run(Shell.java:479) 在org.apache.hadoop.util.Shell $ ShellCommandExecutor.execute(Shell.java:773) 在org.apache.hadoop.util.Shell.execCommand(Shell.java:866) 在org.apache.hadoop.util.Shell.execCommand(Shell.java:849) 在org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:733) 在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) 在org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:296) 在org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:328) 在org.apache.hadoop.fs.ChecksumFileSystem $ ChecksumFSOutputSummer。(ChecksumFileSystem.java:398) 在org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:461) 在org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:440) 在org.apache.hadoop.fs.FileSystem.create(FileSystem.java:911) 在org.apache.hadoop.fs.FileSystem.create(FileSystem.java:804)
答案 0 :(得分:0)
这似乎是一个许可错误。 我的愚蠢......
确保以管理员身份运行任何内容。 虽然我建议使用数据帧而不是RDD:D
谢谢