我正在尝试读取嵌套的json文件。
有没有办法在这个json文件中存储所有列名。
class ReadData {
public static void main(String args[]) throws Exception{
SparkConf conf = new SparkConf().setAppName("Search").setMaster("local[*]");
JavaSparkContext sc= new JavaSparkContext(conf);
SQLContext sqlContext = new org.apache.spark.sql.SQLContext(sc);
DataFrame df1 = sqlContext.read().json("TestData.json");
df1.printSchema();
String columns[]=df1.columns();
int total_columns=columns.length;
System.out.println("column names :");
for(int i=0;i<total_columns;i++){
System.out.println(columns[i]);
}
}
TestData.json的内容:
{
"id":"1",
"name": {
"first_name":"Joe",
"last_name":"Thomas"
}
}
我的代码输出:
column names :
id
name
预期输出为:
column names :
id
name.first_name
name.last_name
答案 0 :(得分:0)
以下是您的问题的可能解决方案。我试图处理一些场景,但这应该可以解决问题。
{
"id":"1",
"name":{
"first_name":"Joe",
"last_name":"Thomas"
},
"address":[
{
"first_line":"Joe",
"city":{
"city_name":"Bangalore",
"city_pin":650659
}
},
{
"first_line":"Joe",
"city":{
"city_name":"Bangalore",
"city_pin":650659,
"city_pin2":65065933
}
}
]
}
示例输入Json我已经采取:
address.first_line
address.city.city_name
address.city.city_pin
address.city.city_pin2
name.last_name
name.first_name
id
输出:
{{1}}