2016-12-21 22 views
0

pysparkデータフレーム(2.0.0)でsqlビューを定義し、 "テーブルまたはビューが見つかりません"のようなエラーを取得しようとしています。私がやっていること:1.空のデータフレームを作成する2.別の場所から一時データフレームにデータを読み込む3.一時データフレームをメインデータフレーム(空のデータフレーム)に追加する4.データフレームにSQLビューを定義する以前は空です)。createOrReplaceTempViewはpyspark2.0.0の空のデータフレームでは機能しません

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()) 
+0

また、私はcreateOrReplaceTempViewが動作しません(彼らは構文の問題をスローしないが、私はビューを定義した後にテーブルをクエリできません) spark-submitを使用して、私の仕事をsparkアプリケーションとして実行しています。私には欠けているものがあります。 – braj259

答えて

0

私は理由を知ったと思います。レコードがゼロのデータフレームにSQLビューを作成してテーブルにアクセスすると、「テーブルまたはビューが存在しません」というエラーが発生します。私はそれが空ではないデータフレーム上の任意のSQLビューを定義する前にチェックを続けることをお勧めします

関連する問題