gpt4 book ai didi

java - Spark/scala 中的 SQL 查询

转载 作者:行者123 更新时间:2023-11-30 01:46:00 25 4
gpt4 key购买 nike

我是 Spark/scala 的新手,我正在尝试将 CSV 文件导入到 Spark 中,并分析其中的数据。 CSV 文件有 5 列(passengerid、flightid、from、to、date)。我已经成功上传了 csv 文件,但是当我对其执行查询时,比如说找出每月的总航类数,我不断收到错误 - 特别是“线程“main”中的异常 org.apache.spark.sql.AnalysisException” :未找到表或 View :df1;第 1 行位置 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)
}'''

最佳答案

帮自己一个忙,切换到 DataFrame 语法而不是纯 SQL! :)

假设 df1.showdf1.printSchema 成功(另外,请仔细查看您的 date 数据类型),您可以尝试以下操作:

df1.filter($"date" >= lit('2017-01-01') && $"date" <= lit('2017-01-31'))

您可能需要用 to_date($"date", "yyyy/MM/dd") (或其他格式)包裹“date”

关于java - Spark/scala 中的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57995525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com