Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure U-SQL自定义缩减器找不到文件_Azure_U Sql - Fatal编程技术网

Azure U-SQL自定义缩减器找不到文件

Azure U-SQL自定义缩减器找不到文件,azure,u-sql,Azure,U Sql,我正在用U-SQL编写一个自定义减速机,它需要一个查找文件作为减速机构造函数的参数。问题是,当我在本地运行时,它找不到项目中/data/目录下包含的查找文件。以下是代码片段: DECLARE @EventType string = @"/data/EventType.csv"; ... @red = REDUCE @filtered ON id PRODUCE ... USING new USQLApplication1.MyReducer(@EventType); 这是我收到的错误信息。

我正在用U-SQL编写一个自定义减速机,它需要一个查找文件作为减速机构造函数的参数。问题是,当我在本地运行时,它找不到项目中/data/目录下包含的查找文件。以下是代码片段:

DECLARE @EventType string = @"/data/EventType.csv"; 
...
@red =
REDUCE @filtered
ON id
PRODUCE 
...
USING new USQLApplication1.MyReducer(@EventType);
这是我收到的错误信息。无论是什么解决方案,我都希望它不仅能在本地运行,还能在azure云中运行。谢谢

运行第1步,共1步

未处理的异常:系统。异常:{“诊断代码”:195887132,“严重性”:“E” 错误“,”组件“:”运行时“,”源“:”用户“,”错误ID“:”E\u运行时用户\u未处理_ 来自用户代码的异常(“消息”):“来自用户代码的未处理异常具有b een在调用用户类型“usqlappic”上的方法“Constructor”时报告 ation1.MyReducer'“说明”:“用户代码中未处理的异常:\”找不到文件“D:\Users\jbfp\Documents\Visual Studio 2015\Projects\USQL” Application1\USQLApplication1\bin\Debug\ECB1C361139EE2D8\Script2\u 2E96CB20AE 368E7B\EventType.csv'.\”


我不能发表评论,所以我将以这种方式发布我的问题


您是否使用DEPLOY RESOURCE将查找文件部署到您的工作目录?该文件需要部署到正在进行操作的每个顶点中。因此,需要显式部署。本地部署可能有一些奇怪之处,但让我们先澄清一下。

以扩展chi的回答

U-SQL在两个存储“层”上运行(缺少更好的术语):

  • 全局持久化存储层。主要是Azure Data Lake存储或Windows Azure Blob存储
  • 运行用户定义函数或运算符的每个节点还提供对节点本地文件系统工作目录的访问
  • 自定义代码无法使用文件IOs直接访问全局持久化存储层。相反,U-SQL提供了所谓的UDO模型,该模型将通过定义良好的接口向每个节点提供部分文件

    那么,如果您想直接读取文件内容,如何访问存储在用户代码中的数据湖中的文件和资源呢?您需要复制(部署)将文件保存到每个节点的本地工作目录中。这可以通过使用
    CREATE ASSEMBLY
    上的
    ADDITIONAL\u file
    选项或使用chi提到的
    DEPLOY RESOURCE
    语句来完成

    话虽如此,本地执行模式在这方面似乎有一个bug,我们已经修复了,但尚未发布(可能会在本月底发布)。如果您需要更早的修复,请告诉我们,我们将看看是否可以部署修补程序