2
在spark中是否支持UDT for java?在Spark中支持java的用戶定義類型
將JavaRDD轉換爲JavaSchemaRDD時,JavaSQLContext是否支持用戶定義類型(UDT)?
如果是,是否有任何示例來演示此功能。
在spark中是否支持UDT for java?在Spark中支持java的用戶定義類型
將JavaRDD轉換爲JavaSchemaRDD時,JavaSQLContext是否支持用戶定義類型(UDT)?
如果是,是否有任何示例來演示此功能。
是的,最簡單的方法是通過反射來推斷它。 See the SparkSQL documentation然後單擊Java選項卡。然後,閱讀標記
Inferring the Schema Using Reflection
編輯從評論
我不知道的是,Java API的作爲很容易充實的一個階,如此看來,以巢類型,你的節可能需要自己構建模式:
//First create the address
List<StructField> addressFields = new ArrayList<StructField>();
fields.add(DataType.createStructField("street", DataType.StringType, true));
StructType addressStruct = DataType.createStructType(addressFields)
//Then create the person, using the address struct
List<StructField> personFields = new ArrayList<StructField>();
fields.add(DataType.createStructField("name", DataType.StringType, true));
fields.add(DataType.createStructField("age", DataType.IntType, true));
fields.add(DataType.createStructField("address", addressStruct, true));
StructType schema = DataType.createStructType(fields);
該部分使用具有簡單數據類型的Java Bean。如果Person類(在示例中)具有名爲Address的自定義類型的屬性,該怎麼辦? – malli 2015-02-23 18:16:36
你試過了嗎?它推斷整個過程。 – 2015-02-23 18:25:04
是的,我試過了。我得到「scala.MatchError:類[地址;(類java.lang.Class)」 – malli 2015-02-24 02:17:57