首页 > 解决方案 > Spark-Salesforce:如何在 spark-salesforce-connector 中指定服务器地址?

问题描述

我需要Dataset<Row>从 Salesforce 表创建 Spark。
我有一个我写的代码片段来做同样的事情:

import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import com.springml.spark.salesforce.*;

public class SaleforceReader {
    public static void main(String args[])
    {
        System.out.println("=========================Salesforce Ingest Begins=========================");
        SparkSession spark = SparkSession.builder().getOrCreate();

        Dataset<Row> df = spark.read().format("com.springml.spark.salesforce")
                    .option("username", "someusername")
                    .option("password", "somepassword")
                    .option("soql", "select id, name from mytable")
                    .option("version", "37.0")
                    .load();

        df.show(false);

        spark.close();
        System.out.println("=========================Salesforce Ingest ENDS=========================");
    }

}

上面的代码片段在许多教程和门户中都有给出。但此代码未指定要连接的任何 Salesforce 服务器。
请告诉我如何指定此com.springml.spark.salesforce连接器的 Saleforce 服务器地址。
我们有类似的东西.option("login", "//some.salesforce.server.com:port")吗?

我使用的依赖项:

<dependency>
  <groupId>com.springml</groupId>
  <artifactId>spark-salesforce_2.11</artifactId>
  <version>1.1.0</version>
</dependency>

标签: javaapache-sparksalesforce

解决方案


正如问题中提到的那样.option("login", "//some.salesforce.server.com:port")有效。
下面是代码:

public static void main(String args[])
    {
        System.out.println("=========================Salesforce Ingest Begins=========================");
        SparkSession spark = SparkSession.builder().getOrCreate();

        Dataset<Row> df = spark.read().format("com.springml.spark.salesforce")
                    .option("username", "someuser@someDomain")
                    .option("password", "mypasswordMYSECURITYTOKEN")
                    .option("login", "https://login.salesforce.com/login/page")
                    .option("soql", "SELECT id from myTable")
                    .option("version", "37.0")
                    .load();

        df.show(false);

        spark.close();
        System.out.println("=========================Salesforce Ingest ENDS=========================");
    }

推荐阅读