【问题标题】:Teardown test data using Apache Spark使用 Apache Spark 拆解测试数据
【发布时间】:2016-10-11 10:58:06
【问题描述】:

我正在使用 Python 3、Apache Spark 2 和 Fedora 20 上的 PySpark 构建 ETL 流程。

我也在针对框架构建自动化测试,但在测试结束时正在努力处理数据的拆除。

我可以使用 Spark 在 AWS Redshift 集群中设置特定数据,但由于无法清除表中的所有数据,似乎无法删除特定数据。

如果我尝试运行 DELETE FROM...WHERE... 我会收到命令不允许错误。 这不是权限问题,因为在我们的 DB IDE(Aquafold 数据工作室 17)中为完全相同的用户运行确切的命令。

没有安装诸如 psycopg2 或 pyodbc 之类的东西(感觉有点矫枉过正)我不确定如何使用 WHERE 子句实现等效的 DELETE。

【问题讨论】:

    标签: python apache-spark amazon-redshift


    【解决方案1】:

    AWS Redshift 驱动程序有许多选项,其中特别有两个

    • 建议
    • 帖子

    这些可以包含要在 AWS Redshift 上执行的 SQL 语句。

    如果有多个语句,它们必须用分号字符分隔。

    请勿用分号终止最后的语句,因为驱动程序认为有后续查询并失败。

    在选项中提到缩写或发布时,它们必须包含有效的SQL,它们不能为空。一个简单的 SELECT 1 就足够了。

    请注意,建议使用另一个选项。

    "extracopyoptions="ACCEPTINVCHARS ' '"
    

    AWS Redshift 不支持 NVARCHAR 字符,并将 NVARCHAR 视为 VARCHAR 的同义词。上面的选项将 RedShift 无法识别的任何字符重新编码为空格。

    【讨论】:

      猜你喜欢
      • 2017-07-23
      • 1970-01-01
      • 1970-01-01
      • 2019-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多