Добавляем к большому ответу DroidBender. Его решение не падает на API 21, поэтому его все еще можно использовать даже без добавления кода Build.VERSION.SDK_INT
. Так выглядит решение API 21 (с использованием высоты текста в качестве параметра размера).
И так выглядит API 23+
Это по-прежнему очень хороший вариант, даже если min API & lt; 23.
Невозможно получить доступ к:
Dataset
или RDD
). SparkConext
/ SparkSession
из задачи Spark (преобразование, udf
). Вот почему вы получаете NPE.
GenerateloginPersone
, кажется, вызываетDataset.printSchema
- что вы не можете сделать. Поскольку мы не можем видеть реализациюGenerateloginPersone
, мы не можем больше представить, как это можно или нужно реализовать, - мы не знаем, что он делает. Итак, суммируем: да, вы можете вызывать методы из UDF; Но эти методы не могут пытаться использоватьSparkContext
/SparkSession
или все, что использует их (например,Dataset
/RDD
). – Tzach Zohar 25 April 2017 в 17:09