如何将Hive中map类型的字段转换成json格式的字符串
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
由于没有原生支持,肯定要写UDF
直接上代码
import com.alibaba.fastjson.JSON;
import org.apache.spark.sql.api.java.UDF2;
import scala.collection.Seq;
import java.util.HashMap;
import java.util.Map;
public class ToJsonUdf implements UDF2<Seq<String>, Seq<String>, String> {
@Override
public String call(Seq<String> keys, Seq<String> values) {
Map<String, String> map = new HashMap<>();
for (int i = 0; i < keys.size(); i++) {
String key = keys.apply(i);
String val = "";
if (values.size() > i) {
val = values.apply(i);
}
map.put(key, val);
}
return JSON.toJSONString(map);
}
}
针对写好的UDF的使用
Select
toJson(map_keys(myMapField),map_values(myMapField) ) as jsonStr
From myTable
GitHub 加速计划 / js / json
18
5
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:3 个月前 )
2134cb94
* change NLOHMANN_JSON_FROM_WITH_DEFAULT to let NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT work with an empty JSON instance
* fix ci_static_analysis_clang (ci_clang_tidy)
* change NLOHMANN_JSON_FROM_WITH_DEFAULT to let NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT work with an empty JSON instance 2 天前
6057b31d
* :wrench: overwork astyle call
* :wrench: overwork astyle call
* :wrench: overwork astyle call
* :wrench: overwork astyle call
* :wrench: overwork astyle call
* :wrench: overwork astyle call
* :wrench: overwork astyle call
* :wrench: overwork astyle call
* :wrench: overwork astyle call
* :wrench: overwork astyle call
* :wrench: overwork astyle call
* Use ubuntu-latest image to run Valgrind (#4575)
* :wrench: use Clang image to run valgrind
* :wrench: use Clang image to run valgrind
* :wrench: use Clang image to run valgrind
* :wrench: use Ubuntu image to run valgrind
* Use Clang image to run iwyu (#4574)
* :wrench: use Clang image to run iwyu
* :wrench: use Clang image to run iwyu
* :wrench: overwork astyle call
* :wrench: overwork astyle call
* :wrench: overwork astyle call
* :wrench: overwork astyle call
* :wrench: overwork astyle call
* :wrench: overwork astyle call
* :wrench: overwork astyle call
* :wrench: overwork astyle call
* :wrench: overwork astyle call
* :wrench: overwork astyle call
* :wrench: overwork astyle call
* :art: format code
* :hammer: clean up 4 天前
更多推荐
已为社区贡献3条内容
所有评论(0)