Я изо всех сил пытаюсь найти информацию о работе с форматом чтения binaryFile
в Databricks. У меня есть куча файлов, которые со временем были записаны в смонтированное хранилище с "функциональным эквивалентом" по существуделает их нечитаемыми для человека, то есть:
import zlib
contentStr = '{"data": "sample"}'
contentBytes = contentStr.encode('utf-8')
contentCompress = zlib.compress(contentBytes)
with open('output/sample.bytes', 'wb') as f:
f.write(contentCompress)
Это на самом деле немного сложнее, так как их содержимое на самом деле тоже шифруется, но я подумал, что я бы загрузил их в фрейм данных, то есть:
df = spark.read.format('binaryFile').load('/mnt/path/')
так что теперь я могу видеть байты, но мне нужны некоторые сведения о наиболее эффективном способе работы с данными, находящимися в столбце байтов кадра данных ...
Я кое-что рассмотрелкак UDF, чтобы в конечном итоге сделать дешифрование и распаковку, но я а) не уверен, как на самом деле написать это, и б) не уверен в производительности .. к счастью, файлы довольно малы (50 КБ), хотя, возможно, не является большой проблемой.. ?
Конечная цель - найти конкретный файл с определенным содержимым.
Даже если не учитывать udf fили сейчас, будет ли что-то подобное этой работе:
import zlib
df.withColumn('uncompressed', zlib.decompress('content'))
Я на самом деле не пробовал это, я набираю это без доступа к каким-либо данным ... так что это просто продумывает нагрузку в данный момент?