我正在尝试将一个json配置文件读入scala项目。json的格式如下:
{
"parameters": [
{
"name": "testInteger",
"type": "Integer",
"value": "10"
},
{
"name": "testString",
"type": "String",
"value": "yeah"
}
]
}
我一直在使用spark生成Dataframe
val df = spark.read.option("multiline","true").json(path)
我需要将json文件中的数据读入具有键“name”和指定类型的值的Map
预期产量:
Map: "testInteger" -> 10
"testString" -> "yeah"
我是新来的斯卡拉和不确定从哪里开始,任何建议将不胜感激。
(注:使用Java8和intellij编写)
1条答案
按热度按时间6l7fqoea1#
所以,这是你应该做的,
创建sparksession,
创建架构,
读取数据集,
这会给你一个
struct
包含字段的名为“params”的列name
,type
以及value
. 这看起来像,注:全部
struct
以及map
类型列强制类型安全。因此架构不能在同一列中允许不同类型的值。所以你的价值观value
场将被投射到string
. 根据您的用例,您可以使用udf
使用字段在运行时强制转换对象type
.