我正在使用HDInsight .NET SDK来使用C#sdk和pig。我在指定c#应用程序路径时遇到错误。
这是我在猪脚本中定义C#应用程序的方法
DEFINE pigudf `PigUDF.exe` SHIP('wasb://book@storage.blob.core.windows.net/PIG/app/PigUDF.exe');
收到错误“发货规格无效”'wasb://bookstore@storage160203122480.blob.core.windows.net/PIG/app/PigUDF.exe'不存在,但PigUDF.exe确实存在路径。
如果我从HDInsight群集控制台运行相同的查询,同时在群集上本地存储了pig脚本文件和c#app,它就会成功运行..即下面适用于hdinsight群集控制台
DEFINE pigudf `PigUDF.exe` SHIP('C:/PigUDF.exe');
其中pigudf.exe本地存储在群集上。
我甚至尝试通过HDInsight工具为visual studio运行它,但我得到了相同的错误。
我们将不胜感激。
感谢,
萨利姆
答案 0 :(得分:0)
尝试使用http://而不是wasb://。 wasb协议用于访问Windows Azure blob存储。
DEFINE pigudf `PigUDF.exe` SHIP('http://book@storage.blob.core.windows.net/PIG/app/PigUDF.exe');
答案 1 :(得分:0)
您可以将udf复制到本地,更新其权限,发送并最终将其删除
fs -copyToLocal wasb://<container>@account/udf.exe
sh cacls udf.exe /E /G <group>:F
define myUdf `udf.exe`ship('udf.exe')
-- run your computation...
sh del udf.exe