我有一个数据集,它具有简单(字符串)和复杂数据类型的组合,用管道分隔。
1111|1234567891011|ABC11|JOSE|"linkEnrollment": {"Group": [{"action": "ADD","groupType": "ROSS","groupId": "GRP-1","isValid": "Y"},{"action": "ADD","groupType": "CROSS","groupId": "GRP-2","isValid": " "}]}
2222|9876543256827|ABC22|JACK|"linkEnrollment": {"Group": [{"action": "DEL","groupType": "ROCK","groupId": "GRP-7","isValid": "N"}]}相应的栏是:
UUID(String)|PID(String)|DEVID(String)|FIRSTNAME(String)|LINK(String which is a JSON)我的要求是我需要使用Spark将这些数据加载到一个Hive表中。我需要知道:
。
发布于 2019-10-30 19:30:25
可以使用Spark加载程序读取您的文件
Dataset<Row> ds = spark.read().format("csv")
.option("sep", "|")
.option("inferSchema", "true")
.option("header", "true")
.load("youfile.csv");然后可以使用from_json解压json列。
val jsonData = spark.read.json(ds.map(x=>x.getString("your_column"))How to query JSON data column using Spark DataFrames?
然后您可以将其存储在Hive中,json列将是您可以查询的StructType。
https://stackoverflow.com/questions/58632362
复制相似问题