源:http://www.csdn.net/article/2015-02-17/2823997
在spark中,DataFrames是一个以命名列方式组织的分布式数据集,等同于关系型数据库中的一个表,也相当于R/Python中的dataFrames(但是进行了更多的优化)。dataFrames可以由结构化数据文件转换而来,也可以从hive中的表得来,以及可以转换自外部数据库或现有的RDD。
下面代码演示了如何使用Python构造DataFrames,而在Scala和Java中也有类似的API可以调用。
- # Constructs a DataFrame from the users table in Hive.
- users = context.table("users")
- # from JSON files in S3
- logs = context.load("s3n://path/to/data.json", "json")
- # Create a new DataFrame that contains “young users” only
- young = users.filter(users.age < 21)
- # Alternatively, using Pandas-like syntax
- young = users[users.age < 21]
- # Increment everybody’s age by 1
- young.select(young.name, young.age + 1)
- # Count the number of young users by gender
- young.groupBy("gender").count()
- # Join young users with another DataFrame called logs
- young.join(logs, logs.userId == users.userId, "left_outer")
- young.registerTempTable("young")
- context.sql("SELECT count(*) FROM young")