pyspark.sql.SparkSession.createDataFrame
的用法。用法:
SparkSession.createDataFrame(data, schema=None, samplingRatio=None, verifySchema=True)
從
RDD
、列表或pandas.DataFrame
創建DataFrame
。當
schema
是列名列表時,將從data
推斷出每列的類型。當
schema
為None
時,它將嘗試從data
推斷架構(列名和類型),這應該是Row
、namedtuple
或dict
的 RDD。當
schema
為pyspark.sql.types.DataType
或數據類型字符串時,必須與真實數據匹配,否則運行時會拋出異常。如果給定的模式不是pyspark.sql.types.StructType
,它將被包裝到pyspark.sql.types.StructType
作為其唯一字段,並且字段名稱將為 “value”。每條記錄也將被包裝成一個元組,以後可以轉換為行。如果需要模式推斷,
samplingRatio
用於確定用於模式推斷的行的比率。如果samplingRatio
是None
,將使用第一行。2.0.0 版中的新函數。
在 2.1.0 版中更改:添加了驗證架構。
- data:
RDD
或可迭代 任何類型的 SQL 數據表示形式的 RDD(
Row
、tuple
、int
、boolean
等)、或list
或pandas.DataFrame
。- schema:
pyspark.sql.types.DataType
,字符串或列表,可選 pyspark.sql.types.DataType
或數據類型字符串或列名列表,默認為無。數據類型字符串格式等於pyspark.sql.types.DataType.simpleString
,除了頂級結構類型可以省略struct<>
和原子類型使用typeName()
作為它們的格式,例如使用byte
而不是tinyint
為pyspark.sql.types.ByteType
。我們也可以使用int
作為pyspark.sql.types.IntegerType
的簡稱。- samplingRatio:浮點數,可選
用於推斷的行的樣本比率
- verifySchema:布爾型,可選
根據架構驗證每一行的數據類型。默認啟用。
- data:
參數:
返回:
注意:
spark.sql.execution.arrow.pyspark.enabled=True 的使用是實驗性的。
例子:
>>> l = [('Alice', 1)] >>> spark.createDataFrame(l).collect() [Row(_1='Alice', _2=1)] >>> spark.createDataFrame(l, ['name', 'age']).collect() [Row(name='Alice', age=1)]
>>> d = [{'name': 'Alice', 'age': 1}] >>> spark.createDataFrame(d).collect() [Row(age=1, name='Alice')]
>>> rdd = sc.parallelize(l) >>> spark.createDataFrame(rdd).collect() [Row(_1='Alice', _2=1)] >>> df = spark.createDataFrame(rdd, ['name', 'age']) >>> df.collect() [Row(name='Alice', age=1)]
>>> from pyspark.sql import Row >>> Person = Row('name', 'age') >>> person = rdd.map(lambda r: Person(*r)) >>> df2 = spark.createDataFrame(person) >>> df2.collect() [Row(name='Alice', age=1)]
>>> from pyspark.sql.types import * >>> schema = StructType([ ... StructField("name", StringType(), True), ... StructField("age", IntegerType(), True)]) >>> df3 = spark.createDataFrame(rdd, schema) >>> df3.collect() [Row(name='Alice', age=1)]
>>> spark.createDataFrame(df.toPandas()).collect() [Row(name='Alice', age=1)] >>> spark.createDataFrame(pandas.DataFrame([[1, 2]])).collect() [Row(0=1, 1=2)]
>>> spark.createDataFrame(rdd, "a: string, b: int").collect() [Row(a='Alice', b=1)] >>> rdd = rdd.map(lambda row: row[1]) >>> spark.createDataFrame(rdd, "int").collect() [Row(value=1)] >>> spark.createDataFrame(rdd, "boolean").collect() Traceback (most recent call last): ... Py4JJavaError: ...
相關用法
- Python pyspark SparkSession.table用法及代碼示例
- Python pyspark SparkSession.builder.config用法及代碼示例
- Python pyspark SparkSession.getActiveSession用法及代碼示例
- Python pyspark SparkSession.range用法及代碼示例
- Python pyspark SparkSession.sql用法及代碼示例
- Python pyspark SparkSession.builder.getOrCreate用法及代碼示例
- Python pyspark SparkSession用法及代碼示例
- Python pyspark SparkConf用法及代碼示例
- Python pyspark SparkContext.addFile用法及代碼示例
- Python pyspark SparkContext.union用法及代碼示例
- Python pyspark SparkContext.runJob用法及代碼示例
- Python pyspark SparkContext.parallelize用法及代碼示例
- Python pyspark SparkContext用法及代碼示例
- Python pyspark SparkContext.range用法及代碼示例
- Python pyspark SparkContext.setJobGroup用法及代碼示例
- Python pyspark SparkContext.pickleFile用法及代碼示例
- Python pyspark SparkContext.applicationId用法及代碼示例
- Python pyspark SparkContext.wholeTextFiles用法及代碼示例
- Python pyspark SparkContext.textFile用法及代碼示例
- Python pyspark SparseVector.parse用法及代碼示例
- Python pyspark SparseVector.dot用法及代碼示例
- Python pyspark SparseVector.squared_distance用法及代碼示例
- Python pyspark SparseVector.norm用法及代碼示例
- Python pyspark Series.asof用法及代碼示例
- Python pyspark Series.to_frame用法及代碼示例
注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 pyspark.sql.SparkSession.createDataFrame。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。