Github user zsxwing commented on a diff in the pull request:

    https://github.com/apache/spark/pull/10856#discussion_r50348448
  
    --- Diff: docs/streaming-custom-receivers.md ---
    @@ -257,54 +257,61 @@ The following table summarizes the characteristics of 
both types of receivers
     
     ## Implementing and Using a Custom Actor-based Receiver
     
    -<div class="codetabs">
    -<div data-lang="scala"  markdown="1" >
    -
     Custom [Akka 
Actors](http://doc.akka.io/docs/akka/2.3.11/scala/actors.html) can also be used 
to
    -receive data. Extending 
[`ActorReceiver`](api/scala/index.html#org.apache.spark.streaming.akka.ActorReceiver)
    -allows received data to be stored in Spark using `store(...)` methods. The 
supervisor strategy of
    -this actor can be configured to handle failures, etc.
    +receive data. Here are the instructions.
     
    -{% highlight scala %}
    +1. **Linking:** You need to add the following dependency to your SBT or 
Maven project (see [Linking section](streaming-programming-guide.html#linking) 
in the main programming guide for further information).
     
    -class CustomActor extends ActorReceiver {
    -  def receive = {
    -    case data: String => store(data)
    -  }
    -}
    +           groupId = org.apache.spark
    +           artifactId = spark-streaming-akka_{{site.SCALA_BINARY_VERSION}}
    +           version = {{site.SPARK_VERSION_SHORT}}
     
    -// A new input stream can be created with this custom actor as
    -val ssc: StreamingContext = ...
    -val lines = AkkaUtils.createStream[String](ssc, Props[CustomActor](), 
"CustomReceiver")
    +2. **Programming:**
     
    -{% endhighlight %}
    +   <div class="codetabs">
    +   <div data-lang="scala"  markdown="1" >
     
    -See 
[ActorWordCount.scala](https://github.com/apache/spark/blob/master/examples/src/main/scala/org/apache/spark/examples/streaming/ActorWordCount.scala)
 for an end-to-end example.
    -</div>
    -<div data-lang="java" markdown="1">
    +   You need to extend 
[`ActorReceiver`](api/scala/index.html#org.apache.spark.streaming.akka.ActorReceiver)
    +   so as to store received data into Spark using `store(...)` methods. The 
supervisor strategy of
    +   this actor can be configured to handle failures, etc.
     
    -Custom [Akka 
UntypedActors](http://doc.akka.io/docs/akka/2.3.11/java/untyped-actors.html) 
can also be used to
    -receive data. Extending 
[`JavaActorReceiver`](api/scala/index.html#org.apache.spark.streaming.akka.JavaActorReceiver)
    -allows received data to be stored in Spark using `store(...)` methods. The 
supervisor strategy of
    -this actor can be configured to handle failures, etc.
    +           class CustomActor extends ActorReceiver {
    +             def receive = {
    +               case data: String => store(data)
    +             }
    +           }
     
    -{% highlight java %}
    +           // A new input stream can be created with this custom actor as
    +           val ssc: StreamingContext = ...
    +           val lines = AkkaUtils.createStream[String](ssc, 
Props[CustomActor](), "CustomReceiver")
     
    -class CustomActor extends JavaActorReceiver {
    -  @Override
    -  public void onReceive(Object msg) throws Exception {
    -    store((String) msg);
    -  }
    -}
    +   See 
[ActorWordCount.scala](https://github.com/apache/spark/blob/master/examples/src/main/scala/org/apache/spark/examples/streaming/ActorWordCount.scala)
 for an end-to-end example.
    +   </div>
    +   <div data-lang="java" markdown="1">
     
    -// A new input stream can be created with this custom actor as
    -JavaStreamingContext jssc = ...;
    -JavaDStream<String> lines = AkkaUtils.<String>createStream(jssc, 
Props.create(CustomActor.class), "CustomReceiver");
    +   You need to extend 
[`JavaActorReceiver`](api/scala/index.html#org.apache.spark.streaming.akka.JavaActorReceiver)
    +   so as to store received data into Spark using `store(...)` methods. The 
supervisor strategy of
    +   this actor can be configured to handle failures, etc.
     
    -{% endhighlight %}
    +           class CustomActor extends JavaActorReceiver {
    +             @Override
    +             public void onReceive(Object msg) throws Exception {
    +               store((String) msg);
    +             }
    +           }
     
    -See 
[JavaActorWordCount.scala](https://github.com/apache/spark/blob/master/examples/src/main/scala/org/apache/spark/examples/streaming/JavaActorWordCount.scala)
 for an end-to-end example.
    -</div>
    -</div>
    +           // A new input stream can be created with this custom actor as
    +           JavaStreamingContext jssc = ...;
    +           JavaDStream<String> lines = 
AkkaUtils.<String>createStream(jssc, Props.create(CustomActor.class), 
"CustomReceiver");
    +
    +   See 
[JavaActorWordCount.scala](https://github.com/apache/spark/blob/master/examples/src/main/scala/org/apache/spark/examples/streaming/JavaActorWordCount.scala)
 for an end-to-end example.
    +   </div>
    +   </div>
    +
    +3. **Deploying:** As with any Spark applications, `spark-submit` is used 
to launch your application.
    --- End diff --
    
    To make the list number here display 3, I changed some indents in 
`programming`. Please use https://github.com/apache/spark/pull/10856/files?w=1 
to review the content.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to