如何将数据帧制作成案例class?
How to make a dataframe into a case class?
很多文档表明可以从案例 class 转到数据框,但我一直无法找到从数据框转到案例的好方法 class.
假设我有一个包含 50 列的数据框,但我想 select 取出大约 5 列并将其变成一个新的 table。我可以这样处理:
sqlContext.sql("select [1, 2, 3, 4, 5] from test").registerTempTable("newTable")
但 newTable 将有一些其他列,如 6、7 作为自定义值(或现在为 0,但该列在测试中不存在 table)。
为了解决这个问题,我尝试创建一个如下所示的案例 class:
case class newTable(1, 2, 3, 4, 5, 6, 7)
最后,我想从测试中提取第 1 列到第 5 列 table,然后输入 6、7 任何我想输入的内容。我只是还没有找到这样做的好方法。
你可以这样使用:
dataframe.select($"1".as("1"), $"2".as("2"), $"3".as("3"), $"4".as("4"), $"5".as("5")).as[newTable]
注意:
您应该将列名称与您的案例中的字段名称相匹配 class
很多文档表明可以从案例 class 转到数据框,但我一直无法找到从数据框转到案例的好方法 class.
假设我有一个包含 50 列的数据框,但我想 select 取出大约 5 列并将其变成一个新的 table。我可以这样处理:
sqlContext.sql("select [1, 2, 3, 4, 5] from test").registerTempTable("newTable")
但 newTable 将有一些其他列,如 6、7 作为自定义值(或现在为 0,但该列在测试中不存在 table)。 为了解决这个问题,我尝试创建一个如下所示的案例 class:
case class newTable(1, 2, 3, 4, 5, 6, 7)
最后,我想从测试中提取第 1 列到第 5 列 table,然后输入 6、7 任何我想输入的内容。我只是还没有找到这样做的好方法。
你可以这样使用:
dataframe.select($"1".as("1"), $"2".as("2"), $"3".as("3"), $"4".as("4"), $"5".as("5")).as[newTable]
注意: 您应该将列名称与您的案例中的字段名称相匹配 class