, если вы используете runnable, вы можете сохранить пространство, чтобы перейти к любому другому классу.
Это происходит потому, что вы не предоставляете схему для DataFrameReader
. В результате Spark должен с нетерпением отсканировать набор данных для вывода выходной схемы.
Поскольку mappedRdd
не кэшируется, он будет дважды оценен:
data.show
Если вы хотите запретить вам предоставлять схему для чтения (синтаксис Scala):
val schema: org.apache.spark.sql.types.StructType = ???
spark.read.schema(schema).json(mappedRdd)