2017-02-28 1 views
-2

우리는 줄리안 데이를 통과하면 날짜를 얻기 위해 사용자 정의 파이썬 udf를 작성해야하는데, 이는 아래 논리와 반대입니다. 제발 조언. 에 StackOverflow에줄리안 날짜에서 줄리안 날짜를 계산하는 파이썬 udf

def date_to_julian_day(my_date): 
    """Returns the Julian day number of a date.""" 
    a = (14 - my_date.month)//12 
    y = my_date.year + 4800 - a 
    m = my_date.month + 12*a - 3 
    return my_date.day + ((153*m + 2)//5) + 365*y + y//4 - y//100 + y//400 - 32045 
+1

에 오신 것을 환영합니다. 도움말 설명서의 게시 지침을 읽고 따르십시오. [주제] (http://stackoverflow.com/help/on-topic) 및 [묻는 방법] (http://stackoverflow.com/help/how-to-ask) 여기를 참조하십시오. StackOverflow는 디자인, 코딩 또는 자습서 서비스가 아닙니다. – Prune

답변

0
from pyspark.sql import functions as f 
rdd = spark.sparkContext.parallelize([(1, '2017-03-01'), (2, '2017-03-02')]) 
df = spark.createDataFrame(rdd, schema=['idx', 'dt']) 
df = df.select(df['idx'], f.to_date(df['dt']).alias('dt')) 

My_UDF = f.UserDefinedFunction(date_to_julian_day, returnType=StringType()) 
df = df.withColumn('julian', My_UDF(df['dt'])) 
df.show() 
관련 문제