簡體   English   中英

Apache Spark SQL BLOB數據類型

[英]Apache Spark SQL BLOB datatype

在使用Apache Spark編程實現時,我遇到了處理具有BLOB數據類型的表的問題。

document_id | content
          2   0x123sa..
        ......

org.apache.spark.sql.Row提供對不同sql數據類型的支持,但我沒有找到BLOB類型:

sqlContext.sql("SELECT * FROM DOCUMENTS").map(row -> {
   String documentName = row.getString(0);
   Blob documentContents = row.???
   ....
}

我該如何解決這個問題?

我在sql()調用返回的SchemaRDD (Spark 1.2.0或更早版本)或DataFrame (Spark 1.3.0 printSchema()上調用printSchema()來檢查你得到了什么 - 這是一個很好的技術你對架構感到困惑。 (這取決於數據庫連接器的實現,以決定如何映射類型。)最可能的選項是BinaryType ,它看起來像:

root
 |-- document_id string (nullable = ...)
 |-- content binary (nullable = ...)

在這種情況下,您應該能夠使用它來提取它

row.getAs[Array[Byte]](1) 

在spark2中,我通過使用Java byte []得到它,如下所示:

byte [] fileContent =(byte [])r.get(0);

暫無
暫無

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

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