web-dev-qa-db-ja.com

spark-csvを使用してzeppelinでcsvファイルを読み取る

Zeppelinでcsvファイルを読みたいので、databricksのspark-csvパッケージを使用したいと思います: https://github.com/databricks/spark-csv

Spark-Shellでは、spark-csvを

spark-Shell --packages com.databricks:spark-csv_2.11:1.2.0

しかし、Zeppelinにそのパッケージを使用するように指示するにはどうすればよいですか?

前もって感謝します!

11
fabsta

Sparkパッケージで%depを使用する前に、Zeppelinにspark Packagesリポジトリを追加する必要があります。

%dep
z.reset()
z.addRepo("Spark Packages Repo").url("http://dl.bintray.com/spark-packages/maven")
z.load("com.databricks:spark-csv_2.10:1.2.0")

または、これがすべてのノートブックで使用できるようにする場合は、Zeppelinのインタープリター構成のspark-submitコマンド設定に--packagesオプションを追加してから、インタープリターを再起動します。これにより、spark-Shellメソッドに従って既にロードされているパッケージのコンテキストが開始されます。

15
  1. [インタープリター]タブに移動し、[リポジトリ情報]をクリックして、リポジトリを追加し、URLを http://dl.bintray.com/spark-packages/maven に設定します。
  2. sparkインタープリターの段落まで下にスクロールして、[編集]をクリックし、アーティファクトフィールドまで少し下にスクロールして、「com.databricks:spark-csv_2.10:1.2.0」またはそれ以降のバージョンを追加します。次に、要求されたときにインタープリターを再始動します。
  3. ノートブックでは、次のようなものを使用します。

    import org.Apache.spark.sql.SQLContext
    
    val sqlContext = new SQLContext(sc)
    val df = sqlContext.read
        .format("com.databricks.spark.csv")
        .option("header", "true") // Use first line of all files as header
        .option("inferSchema", "true") // Automatically infer data types
        .load("my_data.txt")
    

更新:

Zeppelinのユーザーメーリングリストでは、Moon Soo Lee(Apache Zeppelinの作成者)が(2016年11月)ユーザーが%depを維持することを好むと述べています。

  • ノートブックの自己文書化ライブラリ要件;
  • ノートごと(およびユーザーごとに可能)のライブラリのロード。

現在は%depを維持する傾向にあるため、現時点では減価償却と見なすべきではありません。

BEGIN-EDIT

%depはZeppelin 0.6.0では非推奨です。 Paul-Armand Verhaegenの回答を参照してください。

0.6.0より古いツェッペリンを使用している場合は、この回答でさらに読んでください。

END-EDIT

%depインタープリターを使用して、spark-csvパッケージをロードできます。

お気に入り、

%dep
z.reset()

// Add spark-csv package
z.load("com.databricks:spark-csv_2.10:1.2.0")

の「依存関係の読み込み」セクションを参照してくださいhttps://zeppelin.incubator.Apache.org/docs/interpreter/spark.html

既に初期化済みの場合Sparkコンテキストの場合、簡単な解決策は、ツェッペリンを再起動して上記のコードでツェッペリンパラグラフを実行し、次にsparkコードを実行してCSVファイル

4
sag

Sparkインタープリターの依存関係の下にjarファイルを追加できます。

  1. ナビゲーションバーの[通訳]メニューをクリックします。
  2. Sparkインタープリターの[編集]ボタンをクリックします。
  3. アーティファクトを入力し、フィールドを除外します。
  4. 「保存」を押します
1
Gilad

別の解決策:

Conf/zeppelin-env.sh(/ etc/zeppelinにあります)に次の行を追加します。

export SPARK_SUBMIT_OPTIONS="--packages com.databricks:spark-csv_2.10:1.2.0"

次に、サービスを開始します。

0
Zack

conf/zeppelin-env.shで定義した場合

export SPARK_HOME=<PATH_TO_SPARK_DIST>

Zeppelinは$ SPARK_HOME/conf/spark-defaults.confを調べ、そこにjarを定義できます。

spark.jars.packages                com.databricks:spark-csv_2.10:1.4.0,org.postgresql:postgresql:9.3-1102-jdbc41

次に見て

http://zepplin_url:4040/environment /以下の場合:

spark.jarsファイル:/root/.ivy2/jars/com.databricks_spark-csv_2.10-1.4.0.jar,file:/ root/.ivy2/jars/org.postgresql_postgresql-9.3-1102-jdbc41.jar

spark.jars.packagescom.databricks:spark-csv_2.10:1.4.0、org.postgresql:postgresql:9.3-1102-jdbc41

詳細情報: https://zeppelin.incubator.Apache.org/docs/0.5.6-incubating/interpreter/spark.html

0
lapolonio