SparkSQL中SQL、DataFrame和DataSet方式的静态类型安全和运行时类型安全

SparkSQL中SQL、DataFrame和DataSet方式的静态类型安全和运行时类型安全

  • SQL:
    seleeeeeetc name from person; SQL关键字写错,编译 ok, 运行错误

  • DataFrame:
    df.seleeeeeeect("name"); SQL关键字写错,编译不通过
    df.select("nnnnnnnname"); 属性的名字写错了,编译可以通过,但是运行报错

  • DataSet:
    ds.map(line => line.itemmmmmmmmmid);属性写错,编译不通过

总结一下

三种不同的方式在于能否把错误提前呈现出来,很明显DataSet的方式可以最大限度的将错误提前。无论是SQL的错误或者是数据的字段属性写错。

-------------End Of This ArticleThank You For Reading-------------