在Azure上的DataBricks上:
我按照以下步骤操作:
使用python鸡蛋创建一个库,例如simon_1_001.egg,其中包含模块simon。
将库附加到集群并重新启动集群
将笔记本连接到集群并运行:
将simon导入为s
打印s。__file__
运行笔记本,它会正确地给我一个文件名,包括 字符串'simon_1_001.egg'
然后分离并删除egg文件,甚至清空垃圾。
重新启动群集,拆下并连接笔记本以运行它并 而不是抱怨它找不到模块simon,而是运行并 显示相同的字符串
类似地,如果我上传一个较新版本的鸡蛋,例如simon_1_002.egg,它仍然显示相同的字符串。 如果我等待半小时清除并重新运行几次,则最终它将获取新库并显示simon_1_002.egg。
如何正确清除旧的鸡蛋文件?
答案 0 :(得分:2)
Simon,这是Databricks平台中的错误。当使用jar在Databricks中创建库时,对于Py2,文件存储在<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Assignment 02</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
function hideParagraph()
{
$('#drinks_div').fadeOut(1000);
$('#desserts_div').fadeOut(1000);
$('#drinks_div').fadeIn(1000);
$('#desserts_div').fadeIn(1000);
}
function hideAboutAndThings()
{
$('#about_me').fadeOut(1000);
$('#things_I_like').fadeOut(1000);
$('#about_me').fadeIn(1000);
$('#things_I_like').fadeIn(1000);
}
function hideFirstItemDrinks()
{
$("li:first").hide();
}
function hideFirstItemDesserts()
{
$("#listTwo li:first").hide();
}
function hideWordsWithIce()
{
$("#drinks_div[li*='ice']").hide();
}
</script>
</head>
<body>
<h1> My First jQuery Page</h1>
<div id="about_me">
<h2>About Me</h2>
Born in the suburbs of Chicago, I've always been here my whole life. I am fascinated by the city during the night, the lights create great photographs.
</div> <!--this is the end of the div for about me -->
<div id="things_I_like">
<h2>Things I like </h2>
I am a photographer so I enjoy taking pictures, often times when I am finished with work at my job I will go to the gym to work out and let off some steam.
</div> <!--this is the end of the div for things I like -->
<div id="drinks_div">
<h2> Drinks</h2>
<p>
<ul style="list-style-type:none" id="listOne">
<li>1. Tea</li>
<li>2. Water</li>
<li>3. Kombucha</li>
<li>4. Iced Coffee </li>
</ul>
<p>
</div> <!--this is the end of the div for drinks -->
<div id="desserts_div">
<h2> Desserts</h2>
<ul style="list-style-type:none" id="listTwo">
<li>1. Portillo's Choclate Cake</li>
<li>2. Tiramisu</li>
<li>3. Mint Chocolate Chip Ice Cream</li>
</ul>
</div> <!--this is the end of the div for desserts -->
<div id="change_items">
<form action="">
<p>Fade H2s inside Food<input type="radio" name="option_item" value="Fade H2s inside Food" onclick="hideParagraph()"></p>
<p>Fade the 'About Me' H2s<input type="radio" name="option_item"value="Fade the 'About Me' H2s" onclick="hideAboutAndThings()"></p>
<p>Hide first item under drinks<input type="radio" name="option_item" value="Hide first item under drinks' H2s" onclick="hideFirstItemDrinks()"></p>
<p>Hide first item under desserts<input type="radio" name="option_item" value="Hide first item under desserts' H2s" onclick="hideFirstItemDesserts()"></p>
<p>Hide all items with the word 'Ice' in them<input type="radio" name="option_item" value="Hide all items with the word 'Ice' in them " onclick="hideWordsWithIce()"> </p>
<p>Make all list items visible<input type="radio" name="option_item" value="Make all list items visible" onclick="hideParagraph()"></p>
</form>
</div> <!--this is the end of the div for change items -->
</body>
</html>
和dbfs:/FileStore
中,对于Py3集群,存储在/databricks/python2/lib/python2.7/site-packages/
中。
在/databricks/python3/lib/python3.5/site-packages/
和jar
情况下,创建库时都会存储路径。当从Trash中分离库并将其删除时,应该将其从DBFS中删除,而该副本目前尚不支持。
要解决此不一致问题,您可能需要检查Spark UI中的环境子选项卡,或在单元格中使用egg
来查找适当的路径,以确保是否正确删除了库并也将其删除了。重新启动群集并附加库的较新版本之前,请使用%sh ls
命令。
答案 1 :(得分:0)
在作业依赖项中还有一个有趣的Databricks平台错误。在UI中删除依赖库没有任何作用,因此即使您从dbfs中删除jar / egg,旧的依赖版本也会卡在其中,并且作业也会失败。
唯一的选择似乎是使用CLI或API更新作业。因此,您需要按照以下方式(CLI)进行一些操作:
databricks jobs list
找到您的工作ID,然后:
databricks jobs get --job-id 5
将输出保存到json文件job.json
,删除settings
之外的内容,将内容从settings
复制到json文档的根目录,删除不需要的库,然后执行以下操作:
databricks jobs reset --job-id 5 --json-file job.json