Conjunto de datos Spark 2.0 vs DataFrame

comenzando con la chispa 2.0.1 Tengo algunas preguntas. Leí mucha documentación pero hasta ahora no pude encontrar suficientes respuestas:

Cuál es la diferencia entredf.select("foo")df.select($"foo")entiendo correctamente quemyDataSet.map(foo.someVal) es seguro y no se convertirá enRDD pero manténgase en la representación del conjunto de datos / sin sobrecarga adicional (rendimiento inteligente para 2.0.0)todos los otros comandos, p. seleccione, ... son solo azúcar sintáctico. No son de tipo seguro y en su lugar podría usarse un mapa. Cómo podríadf.select("foo") ¿Tipo seguro sin una declaración de mapa?¿por qué debería usar un UDF / UADF en lugar de un mapa (suponiendo que el mapa permanezca en la representación del conjunto de datos)?

Respuestas a la pregunta(2)

Su respuesta a la pregunta