当前位置: 首页 > 知识库问答 >
问题:

通过spark streaming或flume将Xml转换为Avro,从Kafka转换为hdfs

尉迟明辉
2023-03-14

我想将xml文件转换为avro。数据将采用xml格式,并将首先触及Kafka主题。然后,我可以使用flume或spark streaming来摄取xml并将其转换为avro,然后将文件放在hdfs中。我有一个cloudera环境。

当avro文件到达hdfs时,我希望能够稍后将它们读入hive表。

我想知道做这件事最好的方法是什么?我尝试过自动模式转换,比如spark avro(这没有spark流),但问题是spark avro转换数据,但hive无法读取。Spark avro将xml转换为数据帧,然后从数据帧转换为avro。avro文件只能由我的spark应用程序读取。我不确定我是否正确使用了这个。

我想我需要为avro模式定义一个显式模式。不确定如何对xml文件执行此操作。它有多个名称空间,而且相当庞大。

共有1个答案

卢光誉
2023-03-14

如果您在cloud dera上(因为您有Flume,请允许您拥有它),您可以使用吗啡线在记录级别进行转换。您可以使用批处理/流式传输。您可以在此处查看更多信息。

 类似资料:
  • XML输入文件: XML输入文件转换为XML输出文件。将XML输入文件的firstName、middleName和lastName标签合并为XML Ouput文件的name标签,将XML输入文件的address1、address2、city、state和pincode标签合并为XML Ouput文件的address标签。 我几乎转换了代码,但我在这里与empId作斗争。我已经在XSLT文件中手动输

  • 问题内容: 我想转换下面的数组 转换为XML格式或JSON。有人可以帮忙吗? 问题答案: 这适用于关联数组。

  • 问题内容: 我有一些需要用XML迷惑的HTML文件。我们正在使用这些HTML为应用程序提供内容,但是现在我们必须以XML形式提供这些内容。 HTML文件包含,表格,div,图像,p,b或强标签等。 我用谷歌搜索并找到了一些应用程序,但是我还无法实现。 您能否建议一种将这些文件内容转换为XML的方法? 问题答案: 我成功使用了命令行实用程序。在Linux上,我使用迅速安装了它。然后命令: 给了一个x

  • 问题内容: 我试图将JSON输出转换为XML。不幸的是我得到这个错误: JSON根对象具有多个属性。根对象必须具有单个属性才能创建有效的XML文档。考虑指定DeserializeRootElementName。 这就是我到目前为止所创建的。 这是我的JSON输出: 我怎么解决这个问题? 问题答案: 尽管问题中提供的JSON并不完整,但您在顶层具有多个属性,如异常所示。您必须为其定义根以获取有效的X

  • 有一个网站这样做,但我想要一个图书馆或CLI。 谢了!

  • 我试图构建一个系统,从Kafka读取json数据(无模式),将其转换为avro并将其推送到s3。 我已经能够使用kstream和KSQL实现json到avro的转换。我想知道使用Kafka Connect的自定义转换是否可以实现同样的效果。 这是我迄今为止所尝试的: 其中avro_schema是avsc文件中指定的架构名称。 我不确定这是否是正确的方法,但我面临的问题是,当调用newRecord(