컴퓨터공학

PySpark - Aggregation and Join

애기공룡훈련병 2019. 12. 7. 12:17
반응형

Create DataFrame from Dictionary Array

from pyspark.sql import Row
valuesA = [('Pirate',1),('Monkey',2),('Ninja',3),('Spaghetti',4)]
rdd1 = sc.parallelize(valuesA)
rddA = rdd1.map(lambda x: Row(name = x[0], id = x[1]))
TableA = sqlContext.createDataFrame(rddA)
# TableA1 = spark.createDataFrame(valuesA, ['name', 'id'])

valuesB = [('Rutabaga',1),('Pirate',2),('Ninja',3),('Darth Vader',4)]
rdd2 = sc.parallelize(valuesB)
rddB = rdd2.map(lambda x: Row(name = x[0], id = x[1]))
TableB = sqlContext.createDataFrame(rddB)
# TableB1 = spark.createDataFrame(valuesB, ['name', 'id'])

TableA.show()
TableB.show()

Alias Table

ta = TableA.alias('ta')
tb = TableB.alias('tb')

ta.show()
tb.show()

Inner Join between two Tables

inner_join = ta.join(tb, ta.name == tb.name)
inner_join.show()

Left Join between two Tables

left_join = ta.join(tb, on = "name", how = "left")
left_join.show()

left_join2 = ta.join(tb, ta.name == tb.name, how='left') # Could also use 'left_outer'
left_join2.show()

 

 

 

 

 

 

반응형

'컴퓨터공학' 카테고리의 다른 글

AI 기반의 정보 보안 위협  (0) 2025.02.15
네트워크 보안 - 기본 개념 Summary  (0) 2019.12.19
분산 파일 시스템 - Hadoop  (0) 2019.12.04
클라우드 컴퓨팅 기술 정리  (1) 2019.12.03
클라우드 시스템 개요  (0) 2019.12.02