Нет вывода из запроса полного внешнего соединения в Pyspark, когда мы добавляем шаг в EMR или из Zepplin (AWS-EMR), и результаты оболочки Shell From Pyspark хороши - PullRequest
0 голосов
/ 12 января 2019

Когда я делаю полное внешнее объединение в Pyspark не дает выходных данных.

 from __future__ import print_function
 import sys        
 import json
 import os from pyspark.conf  
 import SparkConf from functools
 import reduce from pyspark.sql
 import SparkSession spark = SparkSession \.builder \.appName("SPARK-TEST") 
 \.config("spark.sql.shuffle.partitions", u"00") 
 \.config("spark.speculation.interval", "2000ms") 
 \ .getOrCreate()col_join="yearmonth" 

 intpath ='s3://....' 
 awspath ='s3://.....'  

 col_join="yearmonth"


 DF1=spark.read.option("inferSchema",True).option("header",True).csv(intpath)       
 DF1.show(10,False)                    
 count=DF1.count()      
 print("int count is "+str(count)) 

 DF2 = spark.read.option("inferSchema", True).option("header",True).csv(awspath)           
 DF2.show(10,False)                
 count=DF2.count()           
 print("aws count is "+str(count))                                             
 DF1.createOrReplaceTempView("int")
 DF2.createOrReplaceTempView("aws")   
 #final_result_notmatching = DF1.join(DF2, DF1[col_join] == 
 DF2[col_join],"FullOuter" )            

 final_result_notmatching = spark.sql("select * from  int full outer join aws 
 ON int.{} = aws.{}".format(col_join,col_join)) 

Выход равен нулю, когда мы выполняем полное внешнее соединение, что с этим не так, внутренний и левый внешний в порядке.

+---------+---------+--------------------+
|yearmonth|total_rec|total_unique_count  |
+---------+---------+--------------------+
|2018-10  |1160863  |1160863             |
|2018-11  |1042284  |1042284             |
|2019-01  |172704   |172704              |
|2018-12  |952276   |952276              |
|2018-06  |1177168  |1177168             |
|2018-07  |1183703  |1183703             |
|2018-08  |1183003  |1183003             |
|2018-09  |1176182  |1176182             |
+---------+---------+--------------------+

int - 8

+---------+---------+--------------------+
|yearmonth|total_rec|total_unique_count  |
+---------+---------+--------------------+
|2018-06  |1154341  |1154341             |
|2018-08  |1112278  |1112278             |
|2018-11  |6794     |6794                |
|2018-07  |1155195  |1155195             |
|2018-09  |1059808  |1059808             |
|2018-10  |988629   |988629              |
+---------+---------+--------------------+

Количество AWS 6

 Output is zero 

+---------+---------+--------------------+---------+---------+--------------------+
|yearmonth|total_rec|total_unique_count  |yearmonth|total_rec|total_unique_count  |
+---------+---------+--------------------+---------+---------+--------------------+
+---------+---------+--------------------+---------+---------+--------------------+

Я что-то не так делаю? Любая проблема с запросом?

Я пробовал как с DF, так и с SQL. Оба дают одинаковые результаты.

Какие-нибудь нулевые условия, которые мне нужно добавить?

...