SPARK

spark mysql option

🐰히히 2023. 2. 6. 17:37
반응형

partitionColumn파티션을 결정하는 데 사용해야 하는 열

lowerBound가져올 값의 범위 를 upperBound결정합니다. 

 

전체 데이터 세트는 다음 쿼리에 해당하는 행을 사용

 

SELECT * FROM table WHERE partitionColumn BETWEEN lowerBound AND upperBound

  • lowerBound: 0
  • upperBound: 1000
  • numPartitions: 10

Stride는 100이고 파티션은 다음 쿼리에 해당합니다.

  • SELECT * FROM table WHERE partitionColumn BETWEEN 0 AND 100
  • SELECT * FROM table WHERE partitionColumn BETWEEN 100 AND 200
  • SELECT * FROM table WHERE partitionColumn BETWEEN 900 AND 1000

 

 

 

upperBound / numPartitions - lowerBound / numPartitions

 

upperbound 구하는 법

query = f"""SELECT MIN({partitionColumn}), MAX({partitionColumn}) FROM ({db.table})"""
min_max_df = spark.read \
	.format("jdbc") \
	.option("url", "jdbc:postgresql:postgres") \
	.option("dbtable", "db.table") \
	.option("user", "user")\
	.option("password", "pass") \
	.option("query", query) \
	.load()
lowerBound, upperBound = min_max_df.collect()[0]
728x90
반응형