簡體   English   中英

spark.createDataFrame()無法與Seq RDD一起使用

[英]spark.createDataFrame () not working with Seq RDD

CreateDataFrame帶有2個參數,rdd和schema。

我的架構是這樣的

val schemas= StructType( Seq( StructField("number",IntegerType,false), StructField("notation", StringType,false) ) )

在一種情況下,我可以從RDD創建數據框,如下所示:

`val data1=Seq(Row(1,"one"),Row(2,"two"))

val rdd=spark.sparkContext.parallelize(data1)

val final_df= spark.createDataFrame(rdd,schemas)`

在下面的其他情況下..我無法

`val data2=Seq((1,"one"),(2,"two"))

val rdd=spark.sparkContext.parallelize(data2)

val final_df= spark.createDataFrame(rdd,schemas)`

data2出了什么問題,因為它無法成為Dataframe的有效rdd?

但是我們可以使用帶有數據2的toDF()創建數據幀,但不能使用CreateDataFrame創建數據幀。

val data2_DF = Seq((1,“ one”),(2,“ two”))。toDF(“ number”,“ notation”)

請幫助我了解這種行為。

創建數據框時,Row是強制性的嗎?

在第二種情況下,只需執行以下操作:

val final_df = spark.createDataFrame(rdd)

因為您的RDD是Tuple2的RDD(這是一個Product ),所以該架構在編譯時是已知的,因此您無需指定架構

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM