Spark-Salesforce:如何在spark-salesforce-connector中指定服务器地址?

时间:2019-02-01 12:56:53

标签: java apache-spark salesforce

我需要从Salesforce表中创建Spark的Dataset<Row>
我有一个编写的代码片段可以做到这一点:

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>

1 个答案:

答案 0 :(得分:0)

问题.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=========================");
    }