冰雹
Hail 是基于 Apache Spark 构建的库,用于分析大型基因组学数据集。
重要
创建群集
使用 Databricks 容器服务通过 Docker 安装 Hail。
有关用于设置 Hail 环境的容器,请参阅 ProjectGlow Dockerhub 页面。
使用 projectglow/databricks-hail:<hail_version>,将标记替换为可用的 Hail 版本。
使用 Hail 创建作业群集
- 设置 Databricks CLI。
- 使用 Hail Docker 容器创建群集,并将标记设置为所需的
<hail_version>。 - 下面提供了一个示例作业定义,请编辑 notebook_path、Databricks Runtime
<databricks_runtime_version>和<hail_version>。
databricks jobs create --json-file hail-create-job.jsonhail-create-job.json:
{
"name": "hail",
"notebook_task": {
"notebook_path" : "/Users/<user@organization.com>/hail/docs/hail-tutorial",
},
"new_cluster": {
"spark_version": "<databricks_runtime_version>.x-scala2.12",
"azure_attributes": {
"availability": "SPOT_WITH_FALLBACK_AZURE",
"spot_bid_max_price": -1
},
"node_type_id": "Standard_DS3_v2",
"num_workers": 32,
"docker_image": {
"url": "projectglow/databricks-hail:<hail_version>"
}
}
}
在笔记本中使用 Hail
Azure Databricks 中的 Hail 与 Hail 文档的工作原理大致相同。 但 Azure Databricks 环境需要进行一些修改。
初始化 Hail
初始化 Hail 时,传入预先创建的 SparkContext 并将初始化标记为幂等。 此设置使多个 Azure Databricks 笔记本可以使用相同的 Hail 上下文。
注意
启用 skip_logging_configuration,将日志保存到滚动驱动程序 log4j 输出。 此设置仅在 Hail 0.2.39 及更高版本中受支持。
import hail as hl
hl.init(sc, idempotent=True, quiet=True, skip_logging_configuration=True)
显示 Bokeh 图
Hail 使用 Bokeh 库创建绘图。 内置到 Bokeh 中的 show 函数在 Azure Databricks 中不起作用。 若要显示由 Hail 生成的 Bokeh 图,可以运行以下命令:
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)
有关详细信息,请参阅 Bokeh。