2017-10-30 6 views
-1

私はSpark Scalaの新人です。私はcsvファイルでSQLクエリを作成してレコードを返そうとしています。以下は、私が持っているものですが、動作していない:SQLを使用してScalaでcsvファイルを照会する方法は?

val file = sc.textFile(“file:///data/home_data.csv”) 
val records = file.sqlContext("SELECT id FROM home_data WHERE yr_built < 1979") 
combined.collect().foreach(records) 

私はfile.sqlContext機能でエラーが発生します。

+0

これを確認しましたか?https://stackoverflow.com/questions/43508054/spark-sql-how-to-read-a-tsv-or-csv-file-into-dataframe-and-apply-a-custom -sche – swan

+0

質問のエラーを提供しますか – swan

+0

この質問の回答を確認してください。https://stackoverflow.com/questions/29704333/spark-load-csv-file-as-dataframe – swan

答えて

0

はあなたのクエリを使用し、その後、それぞれのフィールド名とデータ型を使用してデータをマップするためにクラスを使用することができますありがとう:

case class Person(first_name:String,last_name: String,age:Int) 
val pmap = p.map (line => line.split (",")) 
val personRDD = pmap.map (p => Person (p(0), p(1), p(2). toInt)) 
val personDF = personRDD. toDF 

その後、persondfを問い合わせます。

私はスキーマを知らないので、私はこのように公式化しました。

+0

申し訳ありませんが、あなたの回答を理解できませんでした。基本的には、私はSQLでCSVを照会して結果を表示しようとしています。あなたは助けてもらえますか? valファイル= sc.textFile( "file:///data/home_data.csv") valレコード= file.sql( "SELECT ID FROM data_table WHERE size <100") レコードです。ショー – Satish

関連する問題