save()方法可以将DataFrame数据保存成文件。
saveAsTable()方法可以将DataFrame数据保存成持久化的表,并在Hive的元数据库中创建一个指针指向该表的位置,持久化的表会一直保留,即使Spark程序重启也没有影响,只要连接至同一个元数据服务即可读取表数据。
读取持久化表时,只需要用表名作为参数,调用spark.table()方法方法即可得到对应DataFrame。
默认情况下,saveAsTable()方法会创建一个内部表,表数据的位置是由元数据服务控制的。如果删除表,那么表数据也会同步删除
将DataFrame数据保存为文件,步骤如下。
1.首先创建一个映射对象,用于存储save()方法需要用到的数据,这里将指定文件的头信息及文件的保存路径。
2.从user数据中选择出userId、gender和age这3列字段的数据。
3.调用save()方法将步骤中的DataFrame数据保存至copyOfUser.json文件夹中。
4.在HDFS的/user/root/sparkSql目录下查看保存结果。
使用saveAsTable()方法将DataFrame对象copyOfUser保存为copyUser表。