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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
