Hail 0.2

Hail é uma biblioteca construída em Apache Spark para analisar grandes conjuntos de dados genômicos.

Criar um cluster do Hail

Pode instalar o Hail com um script init.

  1. Crie o diretório base no qual pretende colocar o roteiro init. O exemplo a seguir dbfs:/databricks/scripts utiliza.

  2. Guarde o script init usando este corte:

    dbutils.fs.put(
    '/databricks/scripts/install-hail.sh',
    '''
    #!/bin/bash
    set -ex
    
    # Pick up user-provided environment variables, specifically HAIL_VERSION
    source /databricks/spark/conf/spark-env.sh
    
    /databricks/python/bin/pip install -U hail==$HAIL_VERSION
    hail_jar_path=$(find /databricks/python3 -name 'hail-all-spark.jar')
    cp $hail_jar_path /databricks/jars
    
    # Note: This configuration takes precedence since configurations are
    # applied in reverse-lexicographic order.
    cat <<HERE >/databricks/driver/conf/00-hail.conf
    [driver] {
      "spark.kryo.registrator" = "is.hail.kryo.HailKryoRegistrator"
      "spark.serializer" = "org.apache.spark.serializer.KryoSerializer"
    }
    HERE
    
    echo $?
    ''',
      overwrite = True
    )
    
  3. Crie um cluster com databricks Runtime 6.4, o script init, e uma variável ambiental para indicar a versão Hail:

    HAIL_VERSION=0.2.61
    

Utilizar um bloco de notas do Hail

Na maior parte do tempo, o código Hail 0.2 em Azure Databricks funciona de forma idêntica à documentação do Hail. No entanto, existem algumas modificações que são necessárias para o ambiente Azure Databricks.

Inicializar granizo

Ao rubricar Hail, passe no pré-criado SparkContext e marque a inicialização como idempotente. Esta definição permite que vários cadernos Azure Databricks utilizem o mesmo contexto Hail.

Nota

Ativar skip_logging_configuration a produção de registos do controlador rolante 4j. Esta definição é suportada apenas em Hail 0.2.39 ou acima.

import hail as hl
hl.init(sc, idempotent=True, quiet=True, skip_logging_configuration=True)

Exibir parcelas de Bokeh

Hail usa a biblioteca Bokeh para criar enredos. A show função incorporada em Bokeh não funciona em Azure Databricks. Para exibir um enredo Bokeh gerado por Hail, você pode executar um comando como:

from bokeh.embed import components, file_html
from bokeh.resources import CDN
plot = hl.plot.histogram(mt.DP, range=(0,30), bins=30, title='DP Histogram', legend='DP')
html = file_html(plot, CDN, "Chart")
displayHTML(html)

Consulte Bokeh para mais informações.