Spark SQL和DataFrames重要的類有:
- pyspark.sql.SQLContext: DataFrame和SQL方法的主入口
- pyspark.sql.DataFrame: 將分布式數據集分組到指定列名的數據框中
- pyspark.sql.Column :DataFrame中的列
- pyspark.sql.Row: DataFrame數據的行
- pyspark.sql.HiveContext: 訪問Hive數據的主入口
- pyspark.sql.GroupedData: 由DataFrame.groupBy()創(chuàng)建的聚合方法集
- pyspark.sql.DataFrameNaFunctions: 處理丟失數據(空數據)的方法
- pyspark.sql.DataFrameStatFunctions: 統(tǒng)計功能的方法
-pyspark.sql.functions DataFrame:可用的內置函數
- pyspark.sql.types: 可用的數據類型列表
- pyspark.sql.Window: 用于處理窗口函數
5.class pyspark.sql.Row:DataFrame中的一行幌缝,其中的字段可以像屬性一樣訪問脑漫。Row可以用來通過使用命名參數來創(chuàng)建一個行對象垫桂,字典將按名稱排序
>>> from pyspark.sql import Row
>>> row = Row(name="Alice", age=11)
>>> row
Row(age=11, name='Alice')
>>> row['name'], row['age']
('Alice', 11)
>>> row.name, row.age
('Alice', 11)
Row也可以用來創(chuàng)建另一個Row像類一樣磺芭,然后它可以被用來創(chuàng)建ROw對象
>>> Person = Row("name", "age")
>>> Person
<Row(name, age)>
>>> Person("Alice", 11)
Row(name='Alice', age=11)
5.1.asDict(revursice=False):作為字典返回
1.recursive:將嵌套的Row轉換為字典(默認為False)
>>> Row(name="Alice", age=11).asDict() == {'name': 'Alice', 'age': 11}
True
>>> row = Row(key=1, value=Row(name='a', age=2))
>>> row.asDict() == {'key': 1, 'value': Row(age=2, name='a')}
True
>>> row.asDict(True) == {'key': 1, 'value': {'name': 'a', 'age': 2}}
True