我正在读取 Json 文件并使用 java 在 Spark 中创建 View ,当我尝试显示它时,它显示了以空值开头和结尾的两行额外行
我尝试过使用不同的选项 line multi line true 但它不起作用
class Something
{
public void DoSomething() {
SparkSession session = SparkSession.builder().appName("jsonreader")
.master("local[4]").getOrCreate();
Dataset<Row> jsondataset = session.read()
.json("G:\\data\\employee.json");
jsondataset.select("id","name","age").show();
}
}
+----+-------+----+
| id| name| age|
+----+-------+----+
|null| null|null|
|1201| satish| 25|
|1202|krishna| 28|
|null| null|null|
+----+-------+----+
{
{"id" : "1201", "name" : "satish", "age" : "25"}
{"id" : "1202", "name" : "krishna", "age" : "28"}
}
是我的 json 文件,我正在输出带有空值的行,如上面
谁能帮我解释为什么我会变成这样
最佳答案
额外的大括号导致了这种情况。您必须在读取 JSON 之前或读取之后(即通过 Spark)处理它。此外,NULL 被读取为字符串,而不是完全 NULL。下面是我的解决方法,由于“null”是字符串,过滤条件将唯一地标识这些错误行。 :
jsondataset = jsondataset.select("age","id","name").filter("age <> 'null'")
jsondataset.show()
// Result
// +---+----+-------+
// |age|id |name |
// +---+----+-------+
// |25 |1201|satish |
// |28 |1202|krishna|
// +---+----+-------+
关于java - 当我尝试使用 java 从 Spark 中的 json 文件创建 View 时,为什么我得到的行包含空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58461360/