微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

调用 o79.getDynamicFrame 时出错 [Amazon](500310) 无效操作:“s_next_of_kin”处或附近的语法错误

如何解决调用 o79.getDynamicFrame 时出错 [Amazon](500310) 无效操作:“s_next_of_kin”处或附近的语法错误

我在 redshift 中有一个表,其中有一个列名 -->( agent's_next_of_kin) 如果你看到它的名字中有一个撇号 现在,当我用胶水将它读入我的 DynamicFrame 时,它​​给了我上面说语法问题的错误。 我怎样才能让它工作并解决这个问题,我需要更改列名吗?或者是否有任何解决方法,我也尝试删除该列,但在将其读入 datasource0 时甚至删除显示错误之前,它似乎没有到达那里。请帮忙解决问题

解决方法

尝试使用 spark 本机数据帧而不是动态数据帧读取数据。 当我的列名中有空格时,我遇到了这个问题。在使用 selectExpr 函数解决此问题时,我已将列名放在反勾号 `` 内。

使用 spark 读取 redshift:

val jdbcURL = "jdbc:redshift://test-redshift.czac2vcs84ci.us-east-.redshift.amazonaws.com:5439/testredshift?user=redshift&password=W9P3GC42GJYFpGxBitxPszAc8iZFW"
val tempS3Dir = "s3n://spark-redshift-testing/temp/"
val salesDF = sqlContext.read
    .format("com.databricks.spark.redshift")
    .option("url",jdbcURL) //Provide the JDBC URL
    .option("tempdir",tempS3Dir) //User provides a temporary S3 folder
    .option("dbtable","sales") //or use .option("query","select * from sales") 
    .load()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。