2017-04-17 11 views
0
#!/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を接続するために使用します。 しかし、これらのコマンドを書くのではなく、毎回私はスクリプトを作ると思ったのですが、上記のスクリプトを実行するとこのエラーがスローされます。シェルスクリプトでspark-shellコマンドを実行する

enter image description here

+0

http://stackoverflow.com/questions/27717379/spark-how-to-run-spark-file-from-spark-shell –

答えて

1

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) 

火花シェルをするには以下のコマンド使用してログインし、以下のようなあなたのコードとtest.scalaという名前のScalaファイルを作成します。

spark-shell --jars mysql-connector.jar 

上記のコードを実行するには、次のコマンドを使用します。

scala> :load /path/test.scala 

シェルスクリプト実行するたびに時間がかかるsparkContextを起動するたびにシェルスクリプトが実行されます。

上記のコマンドを使用すると、test.scalaにあるコードが実行されます。

スパークシェルにログインするときにsparkContextがロードされるので、スクリプト実行時に時間を節約できます。

+0

本当にあなたの答えを理解できませんでした。あなたは私の質問を得ていないようです。 実行時に以下のコマンドを実行するUnixスクリプトを作成したいと思います。したがって、spark-shellを開き、各行を何度も何度も実行することなく自動的にmysqlのJDBC接続を行います。 – Adarsh

+0

私はあなたの質問を受け取りました。私はあなたがscalaファイルとしてそれを保存することができるようにシェルスクリプトを使う必要はないと言っていますし、すべてのステップを一度に実行することができます。私はそれをより良く理解するのに役立つ説明を追加しました。あなたが理解できない場合はまだ私に教えてください、私はより良い理解のために別の方法を試みます。 –

+0

はい私はあなたのポイントを得た、ありがとう – Adarsh

関連する問題