When a particular task fails that causes RDD to be recomputed from lineage (maybe by reading input file again), how does Spark ensure that there is no duplicate processing of data? What if the task that failed had written half of the data to some output like HDFS or Kafka ? Will it re-write that part of the data again? Is this related to exactly once processing?
Does RDD re computation on task failure cause duplicate data processing?
428 Views Asked by sanjay At
1
There are 1 best solutions below
Related Questions in APACHE-SPARK
- Getting error while running spark-shell on my system; pyspark is running fine
- ingesting high volume small size files in azure databricks
- Spark load all partions at once
- Databricks Delta table / Compute job
- Autocomplete not working for apache spark in java vscode
- How to overwrite a single partition in Snowflake when using Spark connector
- Parse multiple record type fixedlength file with beanio gives oom and timeout error for 10GB data file
- includeExistingFiles: false does not work in Databricks Autoloader
- Spark connectors from Azure Databricks to Snowflake using AzureAD login
- SparkException: Task failed while writing rows, caused by Futures timed out
- Configuring Apache Spark's MemoryStream to simulate Kafka stream
- Databricks can't find a csv file inside a wheel I installed when running from a Databricks Notebook
- Add unique id to rows in batches in Pyspark dataframe
- Does Spark Dynamic Allocation depend on external shuffle service to work well?
- Does Spark structured streaming support chained flatMapGroupsWithState by different key?
Related Questions in RDD
- spark - How is it even possible to get an OOM?
- Dataframe value replacement
- Regex expression to avoid '' records in a RDD after splitting the text
- Spark Left Outer Join produces Optional.empty when it shouldn't
- Converting RDD-based flattening logic to DataFrame approach in PySpark
- What is the memory layout of a non-HDFS RDD?
- I see the following error when running the "saveastextfile" function for RDD using pyspark
- How does RDD.aggregate() work with partitions?
- Fetch a column value into a variable in pyspark without collect
- How to find common pairs irrespective of their order in Pyspark RDD?
- How can i save data from hdfs to amazon s3
- How to do conversion of pyspark RDD to dataframe?
- How to convert pyspark df to python string?
- removing , and converting to int
- Getting Job aborted due to stage failure while converting my string data in a pyspark dataframe into a dictionary
Related Questions in EXACTLY-ONCE
- Getting FlinkRuntime Exception during oracle exactly once jdbc sink
- Conditional Producing in Kafka
- Why does Flink Exactly once commit not fail?
- Microservice consuming from and publishing to RabbitMQ under Spring Transaction - provides exactly once guarantee?
- ProductionExceptionHandler in infinite loop for Kafka stream with exactly once enabled
- Flink Kafka Connector with DeliveryGuarantee.EXACTLY_ONCE producing duplicate messages
- How to build flink kafka producer with exactly once behavior?
- Kafka Streams exactly_once_v2 produce duplicates after application restart
- Does flink streaming job maintain its keyed value state between job runs?
- How to deal with exactly-once http request
- Invalid transition attempted from state COMMITTING_TRANSACTION to state ABORTING_TRANSACTION in Producer
- Kafka distributed connect produce duplicated message
- Kafka EOS retry flag
- kSqlDB Exactly Once Processing Guarantee
- How can I process a newly uploaded object in Google Cloud Storage exactly once?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Output operation by default has at-least-once semantics. The foreachRDD function will execute more than once if there’s worker failure, thus writing same data to external storage multiple times. There’re two approaches to solve this issue, idempotent updates, and transactional updates. They are further discussed in the following sections
Further reading
http://shzhangji.com/blog/2017/07/31/how-to-achieve-exactly-once-semantics-in-spark-streaming/