如何把一个数据框变成一个case类



许多文档表明可以从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]

注意:您应该将列名匹配为大小写类

中的字段名。

相关内容

  • 没有找到相关文章