2017-04-12 82 views
0

在開發Spark單元測試時,我試圖創建一個包含數組的數據框。我真的不在乎數組中的內容(現實生活中的複雜數據類型),因爲我只是對它的大小感興趣。創建Spark數據幀失敗的數組類型任何或_

val data = spark.createDataframe(Seq(
    ("a", 1, Array()), 
    ("b", 2, Array()) 
)).toDF("columnA", "columnB", "columnC") 

我收到以下錯誤是關係到columnC(刪除columnC它工作正常):scala.MatchError: Nothing

所以我嘗試使用Array[Any]()和我:Schema for type Any is not supported

所以我試圖用Array[_]()我得到了:unbound wildcard type

所以我嘗試使用Array[Object](),我得到了:Schema for type java.lang.Object is not supported

最後,我決定問Stackoverflow ...

+0

您可能並不在乎Spark類型。要知道如何存儲數組,它知道類型並調用正確的編碼器。 – zero323

+0

你可以試試Seq() –

回答

0

數據幀支持limited set of data types。不包括ObjectAny。您可以使用Array[Int]()(舉一個例子)來創建一個不會導致模式推斷出現問題的空類型數組。