为Sagemaker Java SDK加载非s3数据源

为Sagemaker Java SDK加载非s3数据源,java,aws-sdk,amazon-sagemaker,Java,Aws Sdk,Amazon Sagemaker,我正在设置一个lambda函数,它使用随机砍伐森林算法执行SageMaker推断。我在jupyter笔记本中成功地运行了python RCF示例,但我更喜欢用Java编写lambda,我希望在这个过程中不要使用s3存储桶。我知道如果我的lambda是用python编写的,那么我就能够传入数据,将其转换为pandas数据帧,然后运行rcf\u推断。predict(data)来获得结果。但对于Java,这似乎是不可能的 我能够使用以下Java代码进行批处理转换作业,但是在检查Java aws sdk

我正在设置一个lambda函数,它使用随机砍伐森林算法执行SageMaker推断。我在jupyter笔记本中成功地运行了python RCF示例,但我更喜欢用Java编写lambda,我希望在这个过程中不要使用s3存储桶。我知道如果我的lambda是用python编写的,那么我就能够传入数据,将其转换为pandas数据帧,然后运行
rcf\u推断。predict(data)
来获得结果。但对于Java,这似乎是不可能的

我能够使用以下Java代码进行批处理转换作业,但是在检查Java aws sdk文档之后,我的TransformDataSource似乎必须有一个S3DataSource,而不是任何其他类型的源。这是不幸的,因为我的lambda内存中已经有我需要的数据,所以不需要上传/下载到s3存储桶中

        String bucket = "test-bucket441";
        String prefix = "sagemaker/rcf-benchmarks";
        String trainedModel = "randomcutforest-2019-06-28-13-43-00-925";

        AmazonSageMaker sm = AmazonSageMakerClientBuilder.standard().build();

        TransformS3DataSource s3Source = new TransformS3DataSource()
                .withS3DataType("S3Prefix")
                .withS3Uri("s3://" + bucket + "/" + prefix);

        TransformDataSource dataSource = new TransformDataSource()
                .withS3DataSource(s3Source);

        TransformInput input = new TransformInput()
                .withContentType("text/csv")
                .withDataSource(dataSource);

        TransformOutput output = new TransformOutput()
                .withS3OutputPath("s3://" + bucket + "/" + prefix + "/output")
                .withAssembleWith("Line");

        TransformResources resources = new TransformResources()
                .withInstanceType("ml.m4.xlarge")
                .withInstanceCount(1);

        CreateTransformJobRequest jobRequest = new CreateTransformJobRequest()
                .withTransformJobName("test-job")
                .withModelName(trainedModel)
                .withTransformInput(input)
                .withTransformOutput(output)
                .withTransformResources(resources);


        sm.createTransformJob(jobRequest);

有人知道我有什么方法可以创建CreateTranformJobRequest而不使用s3 bucket吗?

您的Python代码使用SageMaker HTTPS端点进行实时预测:尽管SageMaker SDK仅限于Python,但您完全可以使用(较低级别)AWS SDK for Java执行相同的操作

假设您已经在SageMaker中培训了您的模型,您会:

  • 创建端点配置
  • 创建一个端点
  • 调用端点
相应的API详见: