제라드 :
나는 스파크 / 스칼라 새로운 브랜드와 나는 불꽃에 CSV 파일을 가져, 그 안에서 데이터를 분석하기 위해 노력하고있어. CSV 파일 (날짜,에,에서, passengerid, flightid) 5 열이 있습니다. 나는 성공적으로 csv 파일을 업로드하지만 난 그것에 쿼리를 수행하기 위해 갈 때, 나는 계속 오류를 얻을, 한달에 총 항공편을 찾을 말을했다 - 스레드 "주요"org.apache.spark.sql.AnalysisException 특히 '예외의를 표 또는보기를 찾을 수 없습니다 DF1을; 1 POS 14 '라인. 내가 출력 테이블을 쿼리에 문제가 거짓말로 볼 수 있기 때문에 테이블이 성공적으로 업로드됩니다. 이견있는 사람?
내 코드 아래 :
'' '패키지 GerardPRactice
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.SQLContext
object trial1 extends App {
val sparkConf = new SparkConf().setAppName("trial1").
setMaster("local[2]") //set spark configuration
val sparkContext = new SparkContext(sparkConf) // make spark context
val sqlContext = new SQLContext(sparkContext) // make sql context
val spark = SparkSession
.builder()
.master("local")
.appName("Question1")
.getOrCreate()
val df1 = sqlContext.read
.format("com.databricks.spark.csv")
.option("header", "true")
.option("delimiter", "|")
.option("inferSchema", "true")
.load("C:/Users/Gerard/Documents/flightData.csv")
// df1: org.apache.spark.sql.DataFrame = [passengerID: int, flightID: int, Departure: string, Destination: string, date: int]
val df2 = sqlContext.read
.format("com.databricks.spark.csv")
.option("header", "true")
.option("delimiter", "|")
.option("inferSchema", "true")
.load("C:/Users/Gerard/Documents/passengers.csv")
df1.show()
//val PassID = df1.select("passengerId")
val totalflightJAN = spark.sql("SELECT * FROM df1 WHERE date>= '2017-01-01' & date<='2017-01-31'")
totalflightJAN.collect.foreach(println)
}'''
Marsellus 월러스 :
자신을 수행 DataFrame에 부탁하고 스위치는 순수 SQL보다는 구문! :)
그 가정 df1.show
하고 df1.printSchema
성공하는 것은 (또한, 귀하의 면밀한 관찰 가지고 date
, 당신은 다음을 시도 할 수있는 데이터 유형) :
df1.filter($"date" >= lit('2017-01-01') && $"date" <= lit('2017-01-31'))
당신과 함께 "날짜"포장해야 할 수도 있습니다 to_date($"date", "yyyy/MM/dd")
(또는 다른 형식)