请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

第二种方式使用StructType的方式也显示的指定了列名和类型相当于也需要知道列和类型,没明白两者的应用场景

正在回答 回答被采纳积分+3

2回答

庄谷 2018-08-15 15:41:04

这个地方我也没搞明白。如果是按照PPT里讲的,意思应该是虽然不知道列名和类型,但是可以推导出来。

0 回复 有任何疑惑可以回复我~
  • 推导是有前提的:json或者parquet之类的,不是所有的都能推导出来,你试想下,给你一个普通文本,能推导出来什么呢
    回复 有任何疑惑可以回复我~ 2018-08-15 16:34:00
Michael_PK 2017-08-31 11:13:05

第二种字段个数无所谓了,在开发中你想咋定义就咋定义

0 回复 有任何疑惑可以回复我~
  • 庄谷 #1
    我看了下文档和讲义,第一种把case类定死了就是这几个字段和类型。第二种是在编程中可以任意增加,比如解析日志的字段,如果只取5个可以加5个,如果需要增加一个那么代码里直接加就行。但是如果这样好像case类方法也是可以做到增加的。最后得出结论应该是case类这种情况如果只是这个方法使用一次跟编程差别不大。如果要在好多地方复用,那么两者差别就是后者可以灵活定义,而前者即便有变动也是所有使用的地方都变。不知理解对不对。
    回复 有任何疑惑可以回复我~ 2018-08-15 16:47:49
  • Michael_PK 回复 庄谷 #2
    case class有些版本最多只支持22个字段,这时候就体现出来另外一种的价值了
    回复 有任何疑惑可以回复我~ 2018-08-15 17:46:19
  • starkpan 回复 Michael_PK #3
    老师,那就是说两种方法的最大区别就在于,个数。第二个没有个数限制。
    这些和知不知道列名,都没有关系,因为列名都是自己定义的,想显示什么就显示什么。
    回复 有任何疑惑可以回复我~ 2018-08-19 15:03:26
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信