来自官网DataFrames、DataSets、SQL,即sparkSQL模块。

  通过dataframe接口,sparkSQL支持多种数据源的操作。可以把dataframe注册为临时视图,也可以通过关系转换。

  1)默认格式是parquet,这是一种columnar(柱状的,按列的)的格式,按列存储(如Hadoop中)。

  parquet载入后就是dataframe格式,而dataframe可以直接写出到parquet文件。

df = spark.read.load("examples/src/main/resources/users.parquet")  #默认parquet格式
df.select("name", "favorite_color").write.save("namesAndFavColors.parquet")

#可手动设置格式为json,亦可以是jsonparquetjdbcorclibsvmcsvtext等內建格式,如果是其他的则要写全称(i.e., org.apache.spark.sql.parquet)
df = spark.read.load("examples/src/main/resources/people.json", format="json")
df.select("name", "age").write.save("namesAndAges.parquet", format="parquet")

#可以直接在文件上执行SQL
df = spark.sql("SELECT * FROM parquet.`examples/src/main/resources/users.parquet`")
 

  2)表分隔(partition)是如Hive的系统中常用的优化途径。分隔后的数据会存放在不同的目录。

  下面的文件就是以gender和country作为分隔字段(列)的。

path
└── to
└── table
├── gender=male
│   ├── ...
│   │
│   ├── country=US
│   │   └── data.parquet
│   ├── country=CN
│   │   └── data.parquet
│   └── ...
└── gender=female
   ├── ...
   │
   ├── country=US
   │   └── data.parquet
   ├── country=CN
   │   └── data.parquet
   └── ...

最新文章

  1. C和指针 第九章 习题
  2. phpweb漏洞合集
  3. windows系统调用 semaphore信号量
  4. 关于对js的this的几点理解
  5. objective-c 强大的布尔类型
  6. windows shell备忘
  7. ASP.NET MVC 学习之路-3
  8. Android 带password输入界面的Dialog实现机制
  9. mac版MyEclipse的安装及创建web项目
  10. Zepto源码分析(二)奇淫技巧总结
  11. JAVA爬虫代码
  12. Android-FloatingActionButton
  13. Spark学习之Spark Streaming
  14. MySQL无法插入中文的解决方案
  15. alibaba的FastJson找不到JSON对象问题
  16. Spring boot国际化
  17. Spring Boot 项目实战(六)集成 Apollo
  18. webpack 中,importloaders 配置项的含义
  19. ASP.NET Core 使用外部登陆提供程序登陆的流程,以及身份认证的流程 (转载)
  20. 49_分析代理类的作用与原理及AOP概念

热门文章

  1. bugkuctf 这 是 一 个 神 奇 的 登 录 界 面
  2. Paddle源码之内存管理技术
  3. 团队作业4-Day6
  4. 小白都看得懂的Javadoc上手教程
  5. Spring Boot 日志各种使用姿势,是时候捋清楚了!
  6. Spark SQL 小文件问题处理
  7. 面试 HTTP和HTML 浏览器
  8. NameVirtualHost *:80 has no VirtualHosts
  9. B. Navigation System【CF 1320】
  10. Nebula Graph 在微众银行数据治理业务的实践