如何在AWS Glue Transform节点中保留键的字母大小写?
问题:AWS Glue Transform节点中如何保留列名大小写?
我正尝试在AWS Glue中添加一个名为timestamp的新列。我的上游数据列名包含大写字母,但添加该列后,其余列的列名均被转换为小写。
实验1:Transform - SQL查询
select cast((Absolute_Time - 2082844800) * 1000 as bigint) as timestamp, * from engine_demo;
执行后所有列名都被转换为小写。
实验2:Transform - 自定义代码
def MyTransform (glueContext, dfc) -> DynamicFrameCollection: df = dfc.select(list(dfc.keys())[0]).toDF() from pyspark.sql import functions as F df = df.withColumn( "timestamp", ((F.col("Absolute_Time") - 2082844800) * 1000).cast("long") ) dynamic_frame = DynamicFrame.fromDF(df, glueContext, "changed") return (DynamicFrameCollection({"result_dynf": dynamic_frame}, glueContext))
执行后所有列名同样被转换为小写。
实验3
我尝试启用Spark SQL大小写敏感的配置,在“Transform - 自定义”代码中添加了相关设置:
def MyTransform (glueContext, dfc) -> DynamicFrameCollection: glueContext.spark_session.conf.set("spark.sql.caseSensitive", "true") df = dfc.select(list(dfc.keys())[0]).toDF() from pyspark.sql import functions as F df = df.withColumn( "timestamp", ((F.col("Absolute_Time") - 2082844800) * 1000).cast("long") ) dynamic_frame = DynamicFrame.fromDF(df, glueContext, "changed") return (DynamicFrameCollection({"dynamic_frame": dynamic_frame}, glueContext))
但结果依旧,列名还是被转为小写。
请问是否有方法在AWS Glue Transform节点中保留列名的字母大小写?感谢!
内容的提问来源于stack exchange,提问作者Hongbo Miao
相关产品推荐
相关产品推荐

