示例#1
0
    spark = SparkSession.builder.appName(
        "PySpark Predix Eventhub basic read example").config(
            "spark.some.config.option", "some-value").getOrCreate()
    sqlContext = SQLContext(spark)
    sparkContext = spark.sparkContext
    properties = json.load(open('predix-eventhub-read-example.properties'))
    jprop = JavaClass("java.util.Properties",
                      sparkContext._gateway._gateway_client)()
    for k in properties:
        jprop.setProperty(k, properties[k])

    javaEventHubReceiver = JavaClass(
        "com.ge.predix.arf.connector.rtcommon.stream.JavaEventHubReceiver",
        sparkContext._gateway._gateway_client)(jprop)
    durationObject = JavaClass("org.apache.spark.streaming.Duration",
                               sparkContext._gateway._gateway_client)(1000)
    jssc = JavaClass(
        "org.apache.spark.streaming.api.java.JavaStreamingContext",
        sparkContext._gateway._gateway_client)(sparkContext._jsc,
                                               durationObject)
    jreceiver = jssc.receiverStream(javaEventHubReceiver)
    transformerObject = JavaClass(
        "com.ge.predix.arf.connector.stream.StreamTSTransformerObject",
        sparkContext._gateway._gateway_client)
    transformFunc = transformerObject.transformShowCallBackFunction()
    jreceiver.foreachRDD(transformFunc)
    jssc.start()
    jssc.awaitTerminationOrTimeout(30000)

    print("*" * 80)