Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 动态框架解析选项规格、日期转换_Amazon Web Services_Aws Glue_Aws Glue Data Catalog - Fatal编程技术网

Amazon web services 动态框架解析选项规格、日期转换

Amazon web services 动态框架解析选项规格、日期转换,amazon-web-services,aws-glue,aws-glue-data-catalog,Amazon Web Services,Aws Glue,Aws Glue Data Catalog,我正在编写一个粘合代码,并使用动态框架Api解析选择,规范。当从目录创建动态框架时,我试图通过传递转换来转换源代码。 我已经通过resolve choice specs成功地实现了强制转换,但是在强制转换日期时,我得到了空值,只是想了解如何在强制转换中使用源格式传递日期。 self.df_TR01=self.df_TR01.resolveChoice(specs=[('col1','cast'string'),('col2_date','cast:date'))。toDF() 但是在col2_d

我正在编写一个粘合代码,并使用动态框架Api解析选择,规范。当从目录创建动态框架时,我试图通过传递转换来转换源代码。 我已经通过resolve choice specs成功地实现了强制转换,但是在强制转换日期时,我得到了空值,只是想了解如何在强制转换中使用源格式传递日期。
self.df_TR01=self.df_TR01.resolveChoice(specs=[('col1','cast'string'),('col2_date','cast:date'))。toDF()


但是在col2_date中,我得到了空值,我试图理解如何在上面的语句中使用源格式传递日期。

我遇到了类似的问题,但我以前在将日期写入Redshift时遇到了问题,它们也是以空值登录的。在我的情况下,我使用了以下方法,它帮助我解决了问题。也许这会有所帮助

from datetime import datetime

def fix_dates(m):
    m["col2"] = datetime.strptime(m["col2"],  "m/d/yy")
    return m

custommapping1 = Map.apply(frame = datasource0, f = fix_dates, transformation_ctx = "custommapping1")
或者,您可以使用spark sql,例如:

datasource0.toDF().createOrReplaceTempView("my_temp_view")

df_cols  = spark.sql("""
  select to_date(cast(unix_timestamp(col2, 'M/d/yy') as timestamp)) as col2 from my_temp_view """)

ResolveChoice通常能够处理大多数歧义。您能分享一个无法正确转换的示例日期吗,也许我也可以试试。谢谢Eman的回复。我确实理解您的观点,但由于我是在第一个源文件中应用转换,所以应该使用ResolveChoice。self.df_TR01=self.df_TR01.resolveChoice(specs=[('col1','cast“string'),('col2_-date','cast:date'))))。toDF()也许如果你分享一下col2_-date在值方面的外观,我可以试着让它工作起来。它就像20121202意味着年、月和日期。我对spark中日期类型的理解是支持“0001-01-01”到“9999-12-31”的任何东西。您还需要使用允许设置日期格式的选项。是的,我正在寻找通过resolveChoice传递源日期格式的选项