¿Es posible dividir DF en dos partes usando la operación de filtro único? Por ejemplo
digamos que df tiene registros por debajo
UID Col
1 a
2 b
3 c
si lo hago
df1 = df.filter(UID <=> 2)
¿Puedo guardar registros filtrados y no filtrados en diferentes RDD en una sola operación?
df1 can have records where uid = 2
df2 can have records with uid 1 and 3
Si solo está interesado en guardar datos, puede agregar una columna de indicador a DataFrame
:
val df = Seq((1, "a"), (2, "b"), (3, "c")).toDF("uid", "col")
val dfWithInd = df.withColumn("ind", $"uid" <=> 2)
y utilícelo como una columna de partición para DataFrameWriter
uno de los formatos compatibles (como para 1.6 es Parquet, texto y JSON):
dfWithInd.write.partitionBy("ind").parquet(...)
Creará dos directorios separados ( ind=false
, ind=true
) al escribir.
Sin embargo, en general, no es posible producir múltiples RDDs
o DataFrames
de una sola transformación. Consulte ¿Cómo dividir un RDD en dos o más RDD?
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras