2016-09-25 5 views
1

ワールド、Spark-Scalaを使ってWebからCSVファイルをダウンロードするには?

ウェブからCSVファイルをダウンロードしてファイルをspark-csv DataFrameにロードするにはどうすればいいですか?

現在、私はCSVファイルを取得するシェルコマンドのカールに依存しています。ここで

は、私が強化したい構文は次のとおりです。

/* fb_csv.scala 
This script should load FB prices from Yahoo. 

Demo: 
spark-shell -i fb_csv.scala 
*/ 

// I should get prices: 
import sys.process._ 
"/usr/bin/curl -o /tmp/fb.csv http://ichart.finance.yahoo.com/table.csv?s=FB"! 

import org.apache.spark.sql.SQLContext 

val sqlContext = new SQLContext(sc) 

val fb_df = sqlContext.read.format("com.databricks.spark.csv").option("header","true").option("inferSchema","true").load("/tmp/fb.csv") 

fb_df.head(9) 

私はそれが内部にシェルの構文を持つ純粋なスカラ座であるように、上記のスクリプトを強化したいです。

+0

あなたの最善のアプローチは、スパークコード外のURIコンテンツを読み取り、結果のシーケンスをDataFrameに変換することです。 –

+0

@TheArchetypalPaul私は火花の中の流れとしてそれを読むでしょう。あれについてどう思う ? – eliasah

+0

私は突き刺しましたが、それについては詳細を見つけることができませんでした。あなたはURLからこれをどうやって行うかについての指針を持っていますか?また、これらは単一の株式の価格です、私はデータセットが非常に大きいとは思わない... –

答えて

2
val content = scala.io.Source.fromURL("http://ichart.finance.yahoo.com/table.csv?s=FB").mkString 

val list = content.split("\n").filter(_ != "") 

val rdd = sc.parallelize(list) 

val df = rdd.toDF 
関連する問題