许多文档显示可以从案例类转到数据框,但我无法找到从数据框到案例类的好方法。
假设我有一个包含50列的数据框,但是想要选择大约5列并将其放入新表中。我可以这样接近它:
sqlContext.sql("select [1, 2, 3, 4, 5] from test").registerTempTable("newTable")
但是newTable会有一些其他的列,比如6,7作为自定义值(或者现在为0,但是这个列在测试表中不存在)。 为了解决这个问题,我尝试创建一个如下所示的案例类:
case class newTable(1, 2, 3, 4, 5, 6, 7)
最后,我想从测试表中提取第1列到第5列,然后输入6,7,无论我想要什么。我还没有找到一个好方法。
答案 0 :(得分:1)
你可以像这样使用:
dataframe.select($"1".as("1"), $"2".as("2"), $"3".as("3"), $"4".as("4"), $"5".as("5")).as[newTable]
注意: 您应该将列名称作为案例类
中的字段名称