#!/bin/sh
spark-shell
import org.apache.spark.sql.SparkSession
val url="jdbc:mysql://localhost:3306/slow_and_tedious"
val prop = new java.util.Properties
prop.setProperty("user",”scalauser”)
prop.setProperty("password","scalauser123")
val people = spark.read.jdbc(url,"sat",prop)
以上命令用于使用JDBC在Mysql和Spark之间建立连接。 但是我不是每次编写这些命令而是编写脚本,而是在运行上面的脚本时抛出此错误。
答案 0 :(得分:1)
使用您的代码创建名为test.scala的scala文件,如下所示
import org.apache.spark.sql.SparkSession
val url="jdbc:mysql://localhost:3306/slow_and_tedious"
val prop = new java.util.Properties
prop.setProperty("user",”scalauser”)
prop.setProperty("password","scalauser123")
val people = spark.read.jdbc(url,"sat",prop)
使用以下命令登录spark-shell。
spark-shell --jars mysql-connector.jar
您可以使用以下命令执行上面创建的代码。
scala> :load /path/test.scala
shell脚本每次启动sparkContext时都会花费更多时间来执行。
如果使用上面的命令,它将只执行test.scala中的代码。
由于在登录spark-shell时会加载sparkContext,因此在执行脚本时可以保存时间。
答案 1 :(得分:0)
您可以将脚本粘贴到文件中,然后执行
spark-shell < {your file name}
答案 2 :(得分:0)
尝试一下,
将您的代码写入文件x.txt
在您的Unix shell脚本中包括以下内容
cat filex.txt | spark-shell
貌似,您不能使用[&]在后台推送脚本