我正在从json文件中选择列,转换它们中的一些,并希望将结果存储为镶木地板文件,但我失败了。
这就是我正在做的事情:
val jsonFiles=sqlContext.jsonFile("/requests.loading")
jsonFiles.registerTempTable("jRequests")
val clean_jRequests=sqlContext.sql("select c1, c2, c3 ... c55 from jRequests")
然后我运行一张地图:
val jRequests_flat=clean_jRequests.map(line=>{((line(1),line(2),line(3),line(4),line(5),line(6),line(7),line(8).asInstanceOf[Iterable[String]].mkString(","),line(9) ,line(10) ,line(11) ,line(12) ,line(13) ,line(14) ,line(15) ,line(16) ,line(17) ,line(18) ,line(19) ,line(20) ,line(21) ,line(22) ,line(23) ,line(24) ,line(25) ,line(26) ,line(27) ,line(28) ,line(29) ,line(30) ,line(31) ,line(32) ,line(33) ,line(34) ,line(35) ,line(36) ,line(37) ,line(38) ,line(39) ,line(40) ,line(41) ,line(42) ,line(43) ,line(44) ,line(45) ,line(46) ,line(47) ,line(48) ,line(49) ,line(50)))})
谢谢,
丹尼尔
答案 0 :(得分:0)
你需要所有55列吗?
您可以创建一个只包含所需列的案例类并保存此子集。
当然,如果您将来需要,请保留包含所有数据的原始文件。
您收到Tuple50错误,因为您在Scala中达到22元组限制 - 请参阅Why does the Scala library only defines tuples up to Tuple22?