Другой способ взглянуть на это: Используются 64 бита для представления чисел. Как следствие, не может быть представлено более 2 ** 64 = 18 446 744 073 709 551 616 различных чисел.
Тем не менее, Math говорит, что существует уже бесконечное число десятичных знаков между 0 и 1. IEE 754 определяет кодировку для эффективного использования этих 64 бит для гораздо большего количества пробелов плюс NaN и +/- Infinity, поэтому есть пробелы между точно представленными числами, заполненными числами, только приближены.
К сожалению, 0,3 сидит в промежутке.
Это невозможно. Spark не поддерживает вложенные операции над распределенными структурами данных (RDDs
, DataFrames
, Datasets
). Даже если бы он выполнял большое количество заданий, это не было бы хорошей идеей. Учитывая код, который вы показали, вы, вероятно, захотите преобразовать свой RDD в DataFrame
и выполнить join
wit
(rdd.map(x => (x, )).toDF(["element"])
.join(sampleDF, sampleDF[0] == df[0])
.groupBy("element")
.agg(count("element") > 0))
. На боковой ноте печать внутри map
абсолютно бесполезна, не упоминайте об этом добавьте дополнительные служебные данные ввода-вывода.