Github user ajbozarth commented on a diff in the pull request:
https://github.com/apache/spark/pull/15556#discussion_r84165361
--- Diff:
core/src/main/scala/org/apache/spark/scheduler/ReplayListenerBus.scala ---
@@ -43,27 +43,33 @@ private[spark] class ReplayListenerBus extends
SparkListenerBus with Logging {
* @param sourceName Filename (or other source identifier) from whence
@logData is being read
* @param maybeTruncated Indicate whether log file might be truncated
(some abnormal situations
* encountered, log file might not finished writing) or not
+ * @param eventsFilter Filter function to select JSON event strings in
the log data stream that
+ * should be parsed and replayed. When not specified, all event
strings in the log data
+ * are parsed and replayed.
*/
def replay(
- logData: InputStream,
- sourceName: String,
- maybeTruncated: Boolean = false): Unit = {
+ logData: InputStream,
+ sourceName: String,
+ maybeTruncated: Boolean = false,
+ eventsFilter: (String) => Boolean =
ReplayListenerBus.SELECT_ALL_FILTER): Unit = {
var currentLine: String = null
var lineNumber: Int = 1
try {
val lines = Source.fromInputStream(logData).getLines()
while (lines.hasNext) {
currentLine = lines.next()
try {
- postToAll(JsonProtocol.sparkEventFromJson(parse(currentLine)))
+ if (eventsFilter(currentLine)) {
+ postToAll(JsonProtocol.sparkEventFromJson(parse(currentLine)))
+ }
} catch {
case jpe: JsonParseException =>
// We can only ignore exception from last line of the file
that might be truncated
if (!maybeTruncated || lines.hasNext) {
throw jpe
} else {
logWarning(s"Got JsonParseException from log file
$sourceName" +
- s" at line $lineNumber, the file might not have finished
writing cleanly.")
+ s" at line $lineNumber, the file might not have
finished writing cleanly.")
--- End diff --
Adding this space is unnecessary and breaks scalastyle line length
---
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]