中的字段名。
许多文档表明可以从case类转到数据框,但是我还没有找到从数据框转到case类的好方法。
假设我有一个包含50列的数据框,但是我想从中选择5列并将其创建为一个新表。我可以这样处理:
sqlContext.sql("select [1, 2, 3, 4, 5] from test").registerTempTable("newTable")
但是newTable将有一些其他列,如6,7作为自定义值(或者现在为0,但该列在测试表中不存在)。为了解决这个问题,我尝试创建一个像这样的case类:
case class newTable(1, 2, 3, 4, 5, 6, 7)
最后,我想从测试表中提取列1到5,然后输入我想要的6,7。
可以这样使用:
dataframe.select($"1".as("1"), $"2".as("2"), $"3".as("3"), $"4".as("4"), $"5".as("5")).as[newTable]
注意:您应该将列名匹配为大小写类