如何使用映射数据流扁平化数据湖中JSON字符串列的层次结构 [英] How to use Mapping Data flow to flatten hierarchy of a JSON string column in Data Lake
本文介绍了如何使用映射数据流扁平化数据湖中JSON字符串列的层次结构的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在data Lake的容器中有CSV文件,我正在尝试将文件中的属性列(在json中)转换为多个列。当我尝试使用数据流来执行此操作时,它将属性列识别为字符串,并且我无法将其更改为数组,以便我可以对其进行展平或从中创建派生列。我是不是做错了什么 CSV文件格式:
ID | 名称 | 属性 |
---|---|---|
123 | 测试 | {";Referrer URL&Quot;:空,&Quot;查询参数&Quot;:&Quot;主题&Quot;} |
456 | 测试2 | {";Referrer URL";:";www.google.com";,";查询参数";:";WebTopics";} |
遵循马可和约瑟夫的指导: 在这些列中使用解析函数和从JSON对象的键中删除空格时面临的问题
- 替换函数不也会从与这些键关联的值中删除空格吗?如果我们在这些字段中获取语句类型数据,这可能是一个问题。
- 我按照约瑟夫提到的所有步骤操作仍然会遇到问题。它可能与我如何设置数据集相关。如果我使用数据预览来检查数据,我会发现源没有正确地填满列。在本例中,它只是在Refferer URL为空之后停止,并且不显示列中的其他值以及json对象的结束括号。正在添加数据采集连接设置的图片。
推荐答案
更新:
Hi@Hammad Hassan Khan,由于您的Attribute
列包含";,";字符,所以我按如下方式编辑它。在源代码中使用竖线(|)作为列分隔符:
附上@Mark Kromer MSFT给出的答案。是的,我们可以在映射数据流中使用Parse transformation来实现这一点。但是Parse
活动不支持键包含空格字符的JSON对象。因此,我们需要替换空格字符。
在
DerivedColumn1
活动中。选择Attribute
列,输入表达式replace(Attribute,' ','' )
替换键中的空格。因为在下一个Parse1
活动中,它不支持包含空格字符的键。
数据预览如下:
在
Parse1
活动中,选择Attribute
列,输入Attribute
As表达式,(ReferrerURL as string,QueryParameters as string)
As输出列类型。
数据预览如下:
这篇关于如何使用映射数据流扁平化数据湖中JSON字符串列的层次结构的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文