<jupyter_start><jupyter_text>Leser inn bibliotek og genererer testdata  Leser inn bibliotek og setter opp spark session<jupyter_code>from pyspark.sql.types import *
import dapla as dp

spark
myspark = SparkSession.builder.getOrCreate()
%run ../../ssb_sparktools/editing/controls.py<jupyter_output><empty_output><jupyter_text>Lager testdata og kodelistedata  Testdata<jupyter_code>testdata_schema = StructType([StructField('identifikator',StringType(),False),StructField('numbvar',LongType(),True),StructField('boolvar',BooleanType(),True)\
                             ,StructField('varenummer',StringType(),True)])
testdata_raw = [('id1', 1, True, '#001'),('id2', 2, False, '#002'), ('id3', None, False, '#003'), ('id4', 4, None, '#004'), ('id5', 4, True, '#005')]
testdata = myspark.createDataFrame(testdata_raw, testdata_schema)<jupyter_output><empty_output><jupyter_text>Kodelistedata<jupyter_code>testdata_kodeliste_schema = StructType([StructField('varenummer',StringType(),True), StructField('frukt',StringType(),True)])
testdata_kodeliste_raw = [('#001', 'Eple'),('#002', 'Banan'), ('#003', 'Kiwi'), ('#004', 'Appelsin'), ('#006', 'Druer')]
testdata_kodeliste = myspark.createDataFrame(testdata_kodeliste_raw, testdata_kodeliste_schema)<jupyter_output><empty_output><jupyter_text>Skriver ut testdata som er laget<jupyter_code>testdata.toPandas()
testdata_kodeliste.toPandas()<jupyter_output><empty_output><jupyter_text>Test av funksjonen *listcode_check*<jupyter_code>kodeliste = testdata_kodeliste.select('varenummer')
sjekk, sjekkdf = listcode_check(testdata, 'varenummer', kodeliste)    
sjekkdf.toPandas()
sjekk<jupyter_output><empty_output><jupyter_text>Test av funksjon compare_dimdf<jupyter_code>compare_dimdf(testdata, testdata)
nytestdata = testdata.drop('numbvar')
compare_dimdf(testdata, nytestdata)
nytestdata = testdata.filter(F.col('identifikator') != 'id4')
compare_dimdf(testdata, nytestdata)
nytestdata = testdata.filter(F.col('identifikator') != 'id4').drop('numbvar')
compare_dimdf(testdata, nytestdata)<jupyter_output><empty_output><jupyter_text>Test av funksjon compare_columns<jupyter_code>compare_columns(testdata, testdata)
nytestdata = testdata.drop('numbvar')
compare_columns(testdata, nytestdata)<jupyter_output><empty_output><jupyter_text>Test av funksjon compare_df<jupyter_code>compare_df(testdata, testdata)
nytestdata = testdata.withColumn('numbvar', F.when(F.col('identifikator')=='id3', F.lit(100)).otherwise(F.col('numbvar')))
compare_df(testdata, nytestdata)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.15165876777251186, 'fraction_numerical': 0.017772511848341232, 'mean_word_length': 11.177884615384615, 'pattern_counts': {'":': 0, '<': 33, '<?xml version=': 0, '>': 33, '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}}
{'chain_length': '8', 'dir': 'jupyter-structured-clean-dedup', 'id': '433418', 'license': 'Apache-2.0', 'n_tokens_mistral': 977, 'n_tokens_neox': 942, 'n_words': 122, 'path': 'development/editing/controls_test.ipynb', 'repo_name': 'statisticsnorway/SSB_Spark_tools', 'size': '2532'}