[英]AWS Glue ETL to Redshift: DATE
我正在使用 AWS Glue 將 ETL 數據傳輸到 Redshift。 我遇到了一個問題,我的日期在 Redshift 中加載為 null。
我設置了什么:
項目 | 顏色 | 價格 | 日期
襯衫| 棕色 | 25.05 | 03-01-2018
褲子| 黑色 | 20.99 | 02-14-2017
爬行S3 object
創建一個 Redshift 表,參見架構:
項目:字符串顏色:字符串價格:十進制/數字日期:日期
將數據加載到 Redshift 的腳本,請參閱腳本:
import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
from pyspark.sql.functions import to_date, col
from awsglue.dynamicframe import DynamicFrame
glueContext = GlueContext(SparkContext.getOrCreate())
items_dynamicframe = glueContext.create_dynamic_frame.from_catalog(
database = "rdshft-test",
table_name = "items")
items_dynamicframe.printSchema()
#Attempt to get date loaded correctly to Redshift
data_frame = items_dynamicframe.toDF()
data_frame.show()
data_frame = data_frame.withColumn("date",
to_date(col("date"),"d-M-Y"))
data_frame.show()
任何反饋表示贊賞。 謝謝你。
我能夠通過轉換回動態框架來解決這個問題。 將數據移植到筆記本時,我使用的是動態框架。 但是,要將字符串轉換為日期,我必須使用 dataframe(更具體地說是 pyspark sql 函數)。 要加載到 Redshift,我必須轉換回動態幀。 假設這是 Glue 的要求?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.