我爲我的項目使用了SJS,並且想知道SJS中的NamedDataFrame如何工作。 我的第一個程序做這個如何使用火花作業服務器中的NamedDataFrame
val schemaString = "parm1:int,parm2:string,parm3:string,parm4:string,parm5:int,parm6:string,parm7:int,parm8:int"
val schema = StructType(schemaString.split(",").map(fieldName => StructField(fieldName.split(":")(0), getFieldTypeInSchema(fieldName.split(":")(1)),true)))
val eDF1 = hive.applySchema(rowRDD1, schema)
this.namedObjects.getOrElseCreate("edf1", new NamedDataFrame(eDF1, true, StorageLevel.MEMORY_ONLY))
我的第二個程序這樣做是爲了取回數據幀。
val eDF1: Option[NamedDataFrame] = this.namedObjects.get("eDF1")
這裏我只能使用Option。如何將NamedDataFrame轉換爲Spark DataFrame?
這個等價物是否可用?
this.namedObjects.get[(Int,String,String,String,Int,String,Int,Int)]("eDF1")
謝謝!!
EDIT1: 準確地說,沒有SJS持久性,這可能是在DF
eDF1.filter(eDF1.col("parm1")%2!==0)
我如何執行從保存namedObject相同的操作呢?
上面的例子並沒有說如何檢索一個Dataframe。以下是您示例中的一些行。你能否說如何在保持StructType的同時檢索df1? val struct = StructType( StructField(「i」,IntegerType,true):: StructField(「b」,BooleanType,false):: Nil val df = sqlContext.createDataFrame(rows(sc),struct) namedObjects.update(「df1」,NamedDataFrame(df,true,StorageLevel.MEMORY_AND_DISK)) – user1384205