{'fraction_non_alphanumeric': 0.02261553588987217, 'fraction_numerical': 0.014749262536873156, 'mean_word_length': 4.784090909090909, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Bloom Filter Cascade Application to SQL Query Implementation on Spark

A new method for SQL query implementation in a parallel execution environment Apache Spark in a package mode was developed on the basis of Bloom Filter Cascade Application (BFCA). It includes representation of the original query in a form of a few subqueries and intermediate tables, where the Bloom filters are created and applied. Then the representation is transformed into Scala code. Theoretical justification of the developed method is provided. The theoretical estimation of the network data transmission volume reduction (shuffle) is shown on an example. The efficiency of the method is demonstrated on the example of Q3 (three tables join) and Q17 (correlated subquery) queries from the TPC-H test. The developed BFCA method is more than 2 times faster and more than 10 times better on shuffle volume (as compared to Spark SQL) on Q3 at a Scale Factor SF=500. The BFCA is 8 times faster on Q17 than Hive (Spark SQL cannot implement Q17).