Кадр данных представляет собой таблицу или двумерную массивоподобную структуру, в которой каждый столбец содержит измерения по одной переменной, а каждая строка содержит один случай.
Таким образом, DataFrame
имеет дополнительныеметаданные благодаря табличному формату, который позволяет Spark выполнять определенные оптимизации для завершенного запроса.
RDD
, с другой стороны, является просто R esilient D istributed D ataset, который является скорее черным ящиком данных, которые нельзя оптимизировать, поскольку операции, которые могут быть выполнены с ним, не столь ограничены.
Однако вы можете пойтиот DataFrame
до RDD
с помощью его метода .rdd
, и вы можете перейти от RDD к DataFrame (если RDD в табличном формате) с помощью метода .toDF()
InВ общем, рекомендуется использовать DataFrame, где это возможно, из-за встроенной оптимизации запросов.