将执行的年份和月份指定为 Pyspark 中的参数

Assign year and month of execution as argument in Pyspark

我在 Pyspark 中使用 Python 2.4 版。

我在如何传递参数以在 where 中获取执行的年份和月份时遇到问题。

我该怎么办?

import pyspark
from datetime import datetime, timedelta 
from os.path import expanduser, join, abspath
from pyspark import SparkContext
from pyspark.sql import SQLContext
from pyspark.sql import HiveContext
import datetime
import sys, os, logging, getopt

sc = SparkContext()
hc = HiveContext(sc)
sql = SQLContext(sc)

hc.sql(""" SELECT *  FROM bd_raw_data.table_iop WHERE pt_year = 2022 AND pt_month = 1 """).registerTempTable("temp_df_table_iop")

是否要在查询中传递参数?

hc.sql(""" SELECT * FROM bd_raw_data.table_iop WHERE pt_year = 2022 AND pt_month = 1 """).registerTempTable("temp_df_table_iop")

在这种情况下,您可以简单地使用 strings,如下所示 -

year = <your year>
month = <your month>

hc.sql("""SELECT *  FROM bd_raw_data.table_iop WHERE pt_year = {year} AND pt_month = {month}""".format(year=year,month=month)).registerTempTable("temp_df_table_iop")