Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Databricks Runtime suporta a fonte de dados de arquivo binário, que lê arquivos binários e converte cada arquivo em um único registro que contém o conteúdo bruto e os metadados do arquivo. A fonte de dados de arquivo binário produz um DataFrame com as seguintes colunas e, possivelmente, colunas de partição:
-
path (StringType): O caminho do arquivo. -
modificationTime (TimestampType): O tempo de modificação do arquivo. Em algumas implementações do Hadoop FileSystem, esse parâmetro pode não estar disponível e o valor seria definido como um valor padrão. -
length (LongType): O comprimento do arquivo em bytes. -
content (BinaryType): O conteúdo do arquivo.
Para ler arquivos binários, especifique a fonte format de dados como binaryFile.
Imagens
O Databricks recomenda que você use a fonte de dados de arquivo binário para carregar dados de imagem.
A função Databricks suporta a exibição de dados de imagem carregados display usando a fonte de dados binária.
Se todos os arquivos carregados tiverem um nome de arquivo com uma extensão de imagem, a visualização da imagem será ativada automaticamente:
df = spark.read.format("binaryFile").load("<path-to-image-dir>")
display(df) # image thumbnails are rendered in the "content" column
Como alternativa, pode forçar a funcionalidade de pré-visualização de imagem usando a opção mimeType com um valor de string "image/*" para anotar a coluna binária. As imagens são decodificadas com base em suas informações de formato no conteúdo binário. Os tipos de imagem suportados são bmp, gif, jpege png. Os arquivos não suportados aparecem como um ícone de imagem quebrado.
df = spark.read.format("binaryFile").option("mimeType", "image/*").load("<path-to-dir>")
display(df) # unsupported files are displayed as a broken image icon
Consulte Solução de referência para aplicativos de imagem para o fluxo de trabalho recomendado para lidar com dados de imagem.
Opções
Para carregar ficheiros com caminhos que correspondam a um determinado padrão de glob, mantendo o comportamento de descoberta de partições, pode usar a opção pathGlobFilter. O código a seguir lê todos os arquivos JPG do diretório de entrada com descoberta de partição:
df = spark.read.format("binaryFile").option("pathGlobFilter", "*.jpg").load("<path-to-dir>")
Se você quiser ignorar a descoberta de partição e pesquisar recursivamente arquivos no diretório de entrada, use a recursiveFileLookup opção. Esta opção pesquisa diretórios aninhados, mesmo que seus nomes não sigam um esquema de nomenclatura de partições como date=2019-07-01.
O código a seguir lê todos os arquivos JPG recursivamente do diretório de entrada e ignora a descoberta de partição:
df = spark.read.format("binaryFile") \
.option("pathGlobFilter", "*.jpg") \
.option("recursiveFileLookup", "true") \
.load("<path-to-dir>")
Existem APIs semelhantes para Scala, Java e R.
Nota
Para melhorar o desempenho de leitura quando você carrega dados de volta, o Azure Databricks recomenda salvar dados carregados de arquivos binários usando tabelas Delta:
df.write.save("<path-to-table>")