pyspark.sql.SparkSession.createDataFrame¶
-
SparkSession。
createDataFrame
( 數據:聯盟(pyspark.rdd.RDD(任何],Iterable(任何],PandasDataFrameLike,ArrayLike],模式:(pyspark.sql.types聯盟。AtomicType pyspark.sql.types。StructType str,沒有)=沒有一個,samplingRatio:可選(浮動]=沒有一個,verifySchema:bool=真正的 )→pyspark.sql.dataframe.DataFrame¶ -
創建一個
DataFrame
從一個抽樣
一個列表,pandas.DataFrame
或者一個numpy.ndarray
。當
模式
是一個列名列表,每個列的類型將推斷的數據
。當
模式
是沒有一個
,它將試圖推斷模式(列名稱和類型)數據
的,這應該是一個抽樣行
,namedtuple
,或dict
。當
模式
是pyspark.sql.types.DataType
或一個數據類型的字符串,它必須與真實的數據,或者在運行時將拋出一個異常。如果給定的模式pyspark.sql.types.StructType
,它將被包裝成一個pyspark.sql.types.StructType
它唯一的字段,字段名稱將“價值”。每個記錄也將被包裝成一個元組,它可以轉化為行之後。如果需要模式推理,
samplingRatio
用於確定行用於模式推理的比率。第一行將使用samplingRatio
是沒有一個
。verifySchema補充道。
- 參數
-
-
數據
抽樣
或iterable -
抽樣的任何類型的SQL數據表示(
行
,元組
,int
,布爾
等),或列表
,pandas.DataFrame
或numpy.ndarray
。 -
模式
pyspark.sql.types.DataType
str或列表,可選的 -
一個
pyspark.sql.types.DataType
或數據類型字符串或一個列名列表,默認是沒有的。數據類型為字符串格式pyspark.sql.types.DataType.simpleString
,除了頂級struct類型可以省略的struct < >
。 - samplingRatio 浮動,可選
-
樣本的比例行用於推斷
- verifySchema bool,可選
-
核實每一行的數據類型與模式。默認啟用。
-
數據
- 返回
筆記
與spark.sql.execution.arrow.pyspark使用。啟用= True是實驗性的。
例子
> > >l=((“愛麗絲”,1)]> > >火花。createDataFrame(l)。收集()行(_1 =“愛麗絲”,“_2 = 1))> > >火花。createDataFrame(l,(“名字”,“年齡”])。收集()行(name =“愛麗絲”,年齡= 1))
> > >d=[{“名字”:“愛麗絲”,“年齡”:1})> > >火花。createDataFrame(d)。收集()行(= 1歲name = '愛麗絲'))
> > >抽樣=sc。並行化(l)> > >火花。createDataFrame(抽樣)。收集()行(_1 =“愛麗絲”,“_2 = 1))> > >df=火花。createDataFrame(抽樣,(“名字”,“年齡”])> > >df。收集()行(name =“愛麗絲”,年齡= 1))
> > >從pyspark.sql進口行> > >人=行(“名字”,“年齡”)> > >人=抽樣。地圖(λr:人(*r))> > >df2=火花。createDataFrame(人)> > >df2。收集()行(name =“愛麗絲”,年齡= 1))
> > >從pyspark.sql.types進口*> > >模式=StructType([…StructField(“名稱”,StringType(),真正的),…StructField(“年齡”,IntegerType(),真正的)))> > >df3=火花。createDataFrame(抽樣,模式)> > >df3。收集()行(name =“愛麗絲”,年齡= 1))
> > >火花。createDataFrame(df。toPandas())。收集()行(name =“愛麗絲”,年齡= 1))> > >火花。createDataFrame(熊貓。DataFrame([[1,2]]))。收集()行(0 = 1,1 = 2))
> > >火花。createDataFrame(抽樣,“字符串,b: int”)。收集()行(a =“愛麗絲”,b = 1))> > >抽樣=抽樣。地圖(λ行:行(1])> > >火花。createDataFrame(抽樣,“int”)。收集()(行(值= 1))> > >火花。createDataFrame(抽樣,“布爾”)。收集()回溯(最近的電話):…Py4JJavaError:…