下面的内容很有趣:
val rddSTG = sc.parallelize(
List ( ("RTD","ANT","SOYA BEANS", "20161123", "20161123", 4000, "docid11", null, 5) ,
("RTD","ANT","SOYA BEANS", "20161124", "20161123", 6000, "docid11", null, 4) ,
("RTD","ANT","BANANAS", "20161124", "20161123", 7000, "docid11", null, 9) ,
("HAM","ANT","CORN", "20161123", "20161123", 1000, "docid22", null, 33),
("LIS","PAR","BARLEY", "20161123", "20161123", 11111, "docid33", null, 44)
)
)
val dataframe = rddSTG.toDF("ORIG", "DEST", "PROD", "PLDEPDATE", "PLARRDATE", "PLCOST", "docid", "ACTARRDATE", "mutationseq")
dataframe.createOrReplaceTempView("STG")
spark.sql("SELECT * FROM STG ORDER BY PLDEPDATE DESC").show()
它会产生如下错误:
scala.MatchError: Null (of class scala.reflect.internal.Types$TypeRef$$anon$6)
一旦我将其中一个空值更改为非空值,它就会起作用。我想我明白了,因为在球场上无法做出任何推论,但这确实看起来很奇怪。有想法吗?