• :)
    2019-05-22
    任何一个生命力的存在与发展都源于历史背景下的需求。
    1. hive sql虽好,但是限制了spark的发展,hive sql已经满足不了广发人民群众对spark sql的的强烈需求,我们需要进入社会主义社会,你却还是用石头打猎,,不行滴,,
    2. RDD是spark这座大厦的基石,那块砖就是RDD。RDD赋予了灵活性,但带来了另一个问题就是复杂性。灵活性和复杂性是一对永久不变的矛盾。
    3.Dataset与DataFrame。我现在要建个房子,你直接给我4面墙一个顶就够了,不要一块砖一块砖的给我,我不但很懒而且很笨。Dataset与DataFrame是根据通用结构化数据处理的建立在RDD之上的封装。带来的便易性但是降低了一定的灵活性。
    展开

    作者回复: 很好的总结

     1
     18
  • cricket1981
    2019-05-22
    待处理数据的schema是静态的且对其完全掌控的情况下用DataSet,反之用DataFrame

    作者回复: 嗯,基本上说的没错,而且在需要类型检测的时候要用DataSet。

    
     12
  • 涵
    2019-05-22
    老师好,我猜想DataSet适用于每列类型程序都很确定时使用,而DataFrame适用于列的类型不确定,类似于generic的类型,拿到数据后根据数据类型再进行不同的处理。是否可以这样理解?

    作者回复: 👍🏻👍🏻

    
     7
  • leesper
    2019-08-19
    感觉这就是传说中的Schema-on-read,传统的数据仓库只能存储结构化数据,对于非结构化数据的,后来有了data lake
    
     3
  • Geek_9319
    2019-05-22
    到底 DataSet是DataFrame的特例?还是DataFrame 是DataSet的特例?

    作者回复: DataFrame可以看做是DataSet的无类型特例,认为每一行都是一个Row object。但是先提出的是DataFrame, 后来才发展出了DataSet并将两者统一。

    
     3
  • 珅剑
    2019-06-13
    DataSet在需要访问列中的某个字段时是非常方便的,但是如果要写一些适配性很强的函数时,如果使用DataSet,行的类型无法在编译时确定,可能是各种case class,这时候用DataFrame就可以比较好地解决问题
    
     1
  • brv
    2019-05-24
    dataset是在dateframe基础上发展起来的,那dateset是dateframe的特例
    
     1
  • 朱同学
    2019-05-22
    大部分情况下用dataset都没问题,限制因素主要是spark版本

    作者回复: 说的很对,DataFrame的功能可以看做是Dataset的子集。

    
     1
  • RocWay
    2019-05-22
    老师你好,请教个问题:既然dataframe没有存储具体的类型,那么是否可以认为dataframe具有动态语言的特性?也就是说当数据类型变化后,程序能够自动适应。实现起来可否这样:先判断某个名字的字段是否存在,再做出相应的动作?
    
     1
  • Geek_f65511
    2019-12-02
    大部分情况都是用dataset和dataframe,rdd的用于操作细节的地方
    
    
  • wy
    2019-11-24
    dataframe是dataset的子集,类型是row,所以dataframe适合那些编译阶段无法确定字段数量和类型的查询,dataset适用那些编译阶段就明确知道字段详细详细信息的场景。
    
    
  • 王翔宇🍼
    2019-07-12
    何时检测分析错误 的分析错误是指什么?
     1
    
  • 西北偏北
    2019-07-11
    Rdd是spark最底层的核心数据结构,但直接使用rdd的门槛较高,你得知道那些地方可以优化,比如filter要写在group之前。如若不然,写出来的计算,性能其差。


    并且rdd没有字段类型名称信息,字段的获取和处理难度较高。


    推荐使用spark sql更顶层,提供了schema信息,提供了对查询的优化。
    展开
    
    
  • linuxfans
    2019-06-16
    Dataset具有类型信息,而Dataframe没有,所以当我们要处理类型化数据,例如数值型时,用Dataset更方便。理论上,Dataframe可以用在Dataset的所有地方,只是字段类型要在程序中自己处理。
    
    
  • CoderLean
    2019-06-04
    实际上如果只是因为hive的不足,为什么不用impala代替,性能也比sparklsql高
    
    
  • Geek_f406a1
    2019-05-30
    请问作者 "还兼容多种数据格式,包括 Hive、RDD、JSON 文件" 这句话中hive是一种数据格式么?
     1
    
  • aof
    2019-05-22
    1. 对于读写Hive时,适合用Dataframe,可以认为df就是一张表。
    2. 对于要操作元组或者case class或者csv等文件时,适合用Dataset,因为是强类型的
    
    
我们在线,来聊聊吧