Как получить данные о скользящих месяцах - PullRequest
0 голосов
/ 14 мая 2019

Код Pyspark для записи данных для скользящего окна n-3 в таблицу Hive

Я написал Pyspark, который будет принимать данные за последние 3 месяца и вставлять их в другую таблицу Hive.Код работает абсолютно нормально.Я использовал столбец Год и месяц, и эти два столбца разделены, и у меня нет столбца даты как такового.Следовательно в условии, что я взял год = текущий год и месяц между текущим месяцем-3 и текущим месяцем.Однако, если я пишу для месяца 1 и 2, то как можно определить год?

from pyspark.sql.functions import *
from pyspark.sql import SparkSession
from pyspark.sql import Row
from pyspark.sql.types import *
with open('/path/.sql') as f:
             query = f.read()
df = spark.sql(query)
df.registerTempTable("temptable")
spark.sql("set hive.exec.dynamic.partition=true")
spark.sql("set hive.exec.dynamic.partition.mode=nonstrict")
spark.sql("Insert overwrite table tablename (year,month) select * from temptable where year == year(from_unixtime(unix_timestamp())) and month between month(from_unixtime(unix_timestamp()))-2 and month(from_unixtime(unix_timestamp()))")
Print "The table is update"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...