我试图在pyspark dataframe(2.0.0)上定义SQL视图,并遇到"表或查看找不到"之类的错误。我正在做的事情:1。创建一个空数据框2.从不同位置加载数据到临时数据框架3.将临时数据框架附加到主数据帧(空框架)4.在数据框架上定义SQL视图(是
spark = SparkSession.builder.config(conf=SparkConf()).appName("mydailyjob").getOrCreate()
sc = spark.sparkContext
schema = StructType([StructField('vdna_id', StringType(), True),
StructField('miq_id', LongType(), True),
StructField('tags', IntegerType(), True),
StructField('dateserial', DateType(), True),
StructField('date_time', TimestampType(), True),
StructField('survey_id', StringType(), True),
StructField('ip', StringType(), True)])
brandsurvey_feed = sqlContext.createDataFrame(sc.emptyRDD(), schema)
# load brandsurvey feed data for each date in date_list
for loc in all_loc:
# load file from different location
bs_tmp = spark.read.csv(loc, schema=schema, sep='t', header=True)
brandsurvey_feed = brandsurvey_feed.union(bs_tmp)
brandsurvey_feed.createOrReplaceTempView("brandsurvey_feed")
print(spark.sql("select * from brandsurvey_feed").show())
人,我想我找到了原因。如果我们在具有零记录的数据框架上创建一个SQL视图,然后访问表,您将获得"表或视图不存在"。我建议在您定义数据框架上的任何SQL视图之前保留检查,以确定其不是空的