我们有一个胶水爬虫,它读取 S3 中的 avro 文件并相应地在胶水目录中创建一个表。问题是我们有一个名为 'foo' 的列,它来自 avro 模式,我们在 s3 存储桶路径中也有类似 'foo=XXXX' 的内容,以具有 Hive 分区。
我们不知道的是,爬虫将创建一个现在有两列同名的表,因此我们在查询表时会出现问题:
HIVE_INVALID_METADATA: Hive metadata for table mytable is invalid: Table descriptor contains duplicate columns
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉胶水将分区 'foo' 映射到另一个列名,如 'bar' ?这样我们就可以通过在 s3 存储桶路径中指定一个新的分区名称来避免重新处理我们的数据。
或任何其他建议?
我的目标是使用容器部署 Kafka 连接连接器(s3 接收器),因此了解有关工作人员可能会或可能不会直接相互通信的详细信息非常重要。
从我读到的内容来看,我无法确定工作人员之间是否会进行直接通信(例如一名工作人员使用 REST 与另一名工作人员交谈,或其他)。
我一开始认为,当我使用 REST 更新配置时,配置更改是使用 connect_config 内部主题和/或使用 Kafka 消费者协调器传播的。
但从我读到的:
rest.advertised.host.name
If this is set, this is the hostname that will be given out to other workers to connect to.
Run Code Online (Sandbox Code Playgroud)
有关工人如何以及为什么(如果这样做)彼此沟通的任何详细信息?