当我使用 Glue 爬虫扫描 S3 中的数据时,我得到以下架构:
{id: integer, value: String}
这是因为 Spark 以
String
类型而不是 varchar
类型写回数据。虽然spark中有一个VarcharType。 (请参阅:VarcharType — PySpark 主文档)
问题是我需要 Redshift 中的数据作为
VarcharType
中的 Spectrum 查询,因为我的 BI 工具无法读取 string
类型数据。
如果我使用
Create External Table
我会得到表中的所有空值。仅当我将其更改为内部表时,问题才能解决。但是,我确实需要它作为频谱查询。有什么建议将字符串类型转换为varchartype
吗?
索尔步骤:
现在您的频谱外部表中将包含带有分区列的数据。 如果 S3 中添加新分区,您需要定期运行爬虫