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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。