Spark: преобразование данных массива [байтов] в RDD или DataFrame - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть данные в виде массива [байт], которые я хочу преобразовать в Spark RDD или DataFrame, чтобы я мог записывать свои данные непосредственно в корзину Google в виде файла. Я не могу записать данные массива [байт] в корзину Google напрямую. Итак, ищем это преобразование.

Мой код ниже может записывать данные в Local FS, но не в Google Bucket

val encrypted = encrypt(original, readPublicKey(pubKey), outFile, true, true)
val dfis = new FileOutputStream(outFile)
dfis.write(encrypted)
dfis.close()

def encrypt(clearData: Array[Byte], encKey: PGPPublicKey, fileName: String, withIntegrityCheck: Boolean, armor: Boolean): Array[Byte] = {
...
}

Так что кто-то может помочь мне здесь при преобразовании массива [байт]данные в RDD или DataFrame? Я использую Scala.

Спасибо за вашу помощь заранее.

1 Ответ

2 голосов
/ 01 ноября 2019

просто используйте .toDF() или .toDF().rdd

scala> val arr: Array[Byte] = Array(192.toByte, 168.toByte, 1.toByte, 4.toByte)
arr: Array[Byte] = Array(-64, -88, 1, 4)

scala> val df = arr.toSeq.toDF()
df: org.apache.spark.sql.DataFrame = [value: tinyint]

scala> df.show()
+-----+
|value|
+-----+
|  -64|
|  -88|
|    1|
|    4|
+-----+


scala> df.printSchema()
root
 |-- value: byte (nullable = false)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...