2016-02-18 59 views
0

我正在與HDInsight .NET SDK一起使用C#sdk和pig。指定c#應用程序路徑時出現錯誤。在HDInsight上使用C#和PIG Azure

這裏是如何界定我的C#應用​​程序在豬腳本

DEFINE pigudf `PigUDF.exe` SHIP('wasb://[email protected]/PIG/app/PigUDF.exe'); 

我得到錯誤「無效的船舶規範」「wasb://[email protected]/PIG/app/ PigUDF.exe'不存在,但PigUDF.exe確實存在於給定路徑中。

如果我運行從HDInsight集羣控制檯上的集羣存儲在本地兩豬腳本文件和C#應用程序相同的查詢,它成功運行..即下面的工作hdinsight集羣控制檯上

DEFINE pigudf `PigUDF.exe` SHIP('C:/PigUDF.exe'); 

其中pigudf。 exe本地存儲在羣集上。

我甚至嘗試通過用於visual studio的HDInsight工具來運行它,但我得到同樣的錯誤。

任何幫助在這裏將不勝感激。

感謝,

薩利姆

回答

0

嘗試使用http://而不是wasb://。 wasb協議用於訪問Windows Azure blob存儲。

DEFINE pigudf `PigUDF.exe` SHIP('http://[email protected]/PIG/app/PigUDF.exe'); 
+0

該文件是Blob存儲,我不得不訪問Blob存儲。當我在HDInsight集羣控制檯上執行時,我給出了本地存儲的路徑。我試過了,但是這沒有奏效。我犯了同樣的錯誤。 –

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 
相關問題