我访问了MySQL数据库并获取了表。
到那时一切都很好。
当我尝试以文本或其他格式保存记录时,出现错误
退出代码异常退出代码= 1:“通过掩码更改文件模式错误”(5):拒绝访问。
任何帮助将不胜感激。
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("JDB CRDD").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")
}
}
错误
18/07/18 11:10:19错误执行器:阶段2.0中的任务0.0中的异常
(TID 2)ExitCodeException exitCode = 1:ChangeFileModeByMask错误(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)
在
org.apache.hadoop.fs.RawLocalFileSystem $ LocalFSFileOutputStream。(RawLocalFileSystem.java:209)
在
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)
最佳答案
看来是权限错误。我的愚蠢...
确保以管理员身份运行任何内容。虽然我建议使用数据框而不是RDD:D