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.DataFramenumpy.ndarray

模式 pyspark.sql.types.DataTypestr或列表,可選的

一個pyspark.sql.types.DataType或數據類型字符串或一個列名列表,默認是沒有的。數據類型為字符串格式pyspark.sql.types.DataType.simpleString,除了頂級struct類型可以省略的struct < >

samplingRatio 浮動,可選

樣本的比例行用於推斷

verifySchema bool,可選

核實每一行的數據類型與模式。默認啟用。

返回
DataFrame

筆記

與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(dftoPandas())收集()行(name =“愛麗絲”,年齡= 1))> > >火花createDataFrame(熊貓DataFrame([[1,2]]))收集()行(0 = 1,1 = 2))
> > >火花createDataFrame(抽樣,“字符串,b: int”)收集()行(a =“愛麗絲”,b = 1))> > >抽樣=抽樣地圖(λ:(1])> > >火花createDataFrame(抽樣,“int”)收集()(行(值= 1))> > >火花createDataFrame(抽樣,“布爾”)收集()回溯(最近的電話):Py4JJavaError: