View a markdown version of this page

Crear y usar AWS Glue DataBrew recipes - AWS Glue DataBrew Guía para desarrolladores

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Crear y usar AWS Glue DataBrew recipes

En DataBrew, una receta es un conjunto de pasos de transformación de datos. Puede aplicar estos pasos a una muestra de sus datos o aplicar la misma receta a un conjunto de datos.

La forma más sencilla de desarrollar una receta es crear un DataBrew proyecto, en el que pueda trabajar de forma interactiva con una muestra de sus datos; para obtener más información, consulte. Crear y usar AWS Glue DataBrew proyectos Como parte del flujo de trabajo de creación del proyecto, se crea una receta nueva (vacía) y se adjunta al proyecto. A continuación, puede empezar a crear su receta añadiendo transformaciones de datos.

nota

Puede incluir hasta 100 transformaciones de datos en una sola DataBrew receta.

A medida que vaya desarrollando la receta, puede guardar su trabajo publicándola. DataBrew mantiene una lista de las versiones publicadas de su receta. Puede usar cualquier versión publicada en un trabajo de receta para ejecutar la receta (en un trabajo de receta) y transformar su conjunto de datos. También puedes descargar una copia de los pasos de la receta para reutilizarla en otros proyectos o en otras transformaciones de conjuntos de datos.

También puedes desarrollar DataBrew recetas mediante programación, utilizando AWS Command Line Interface(AWS CLI) o uno de los AWS SDK. En la DataBrew API, las transformaciones se conocen como acciones de receta.

nota

En una sesión de DataBrew proyecto interactiva, cada transformación de datos que se aplique dará como resultado una llamada a la DataBrew API. Estas llamadas a la API se producen automáticamente, sin que tengas que conocer los detalles entre bastidores.

Incluso si no eres programador, es útil entender la estructura de una receta y cómo DataBrew organiza sus acciones.

Publicar una nueva versión de la receta

Las nuevas versiones de una receta se publican en una sesión de DataBrew proyecto interactiva.

Para publicar una nueva versión de la receta
  1. En el panel de recetas, elija Publicar.

  2. Introduzca una descripción para esta versión de la receta y elija Publicar.

Para ver todas las recetas publicadas y sus versiones, selecciona PROYECTOS en el panel de navegación.

Definir la estructura de una receta

Al crear un proyecto por primera vez con la DataBrew consola, se define una receta para asociarla a ese proyecto. Si no tienes una receta existente, la consola crea una para ti.

Mientras trabaja con el proyecto en la consola, utiliza la barra de herramientas de transformación para aplicar acciones a los datos de muestra del conjunto de datos. La consola muestra los pasos de la receta y su orden a medida que continúa creando la receta. Puede repetir y refinar la receta hasta que esté satisfecho con los pasos.

EnIntroducción al AWS Glue DataBrew, creas una receta para transformar un conjunto de datos de partidas de ajedrez famosas. Para descargar una copia de los pasos de la receta, selecciona Descargar como JSON o Descargar como YAML, como se muestra en la siguiente captura de pantalla.

Se ha ampliado el menú con las opciones Importar la receta, Descargar como YAML y Descargar como JSON.

El archivo JSON descargado contiene las acciones de la receta correspondientes a las transformaciones que has añadido a la receta.

Una receta nueva no tiene ningún paso. Puedes representar una receta nueva como una lista JSON vacía, como se muestra a continuación.

[ ]

A continuación se muestra un ejemplo de un archivo de este tipo, parachess-project-recipe. La lista JSON contiene varios objetos que describen los pasos de la receta. Cada objeto de la lista JSON está entre corchetes ({ }). Las líneas JSON están delimitadas por comas.

[ { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "black_rating" } }, "ConditionExpressions": [ { "Condition": "LESS_THAN", "Value": "1800", "TargetColumn": "black_rating" } ] }, { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "white_rating" } }, "ConditionExpressions": [ { "Condition": "LESS_THAN", "Value": "1800", "TargetColumn": "white_rating" } ] }, { "Action": { "Operation": "GROUP_BY", "Parameters": { "groupByAggFunctionOptions": "[{\"sourceColumnName\":\"winner\",\"targetColumnName\":\"winner_count\",\"targetColumnDataType\":\"int\",\"functionName\":\"COUNT\"}]", "sourceColumns": "[\"winner\",\"victory_status\"]", "useNewDataFrame": "true" } } }, { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "winner" } }, "ConditionExpressions": [ { "Condition": "IS", "Value": "[\"draw\"]", "TargetColumn": "winner" } ] }, { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "mate", "sourceColumn": "victory_status", "value": "checkmate" } } }, { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "resign", "sourceColumn": "victory_status", "value": "other player resigned" } } }, { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "outoftime", "sourceColumn": "victory_status", "value": "ran out of time" } } } ]

Es más fácil ver que cada acción es una línea individual si solo añadimos nuevas líneas para las nuevas acciones, como se muestra a continuación.

[ { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "black_rating" } }, "ConditionExpressions": [ { "Condition": "LESS_THAN", "Value": "1800", "TargetColumn": "black_rating" } ] }, { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "white_rating" } }, "ConditionExpressions": [ { "Condition": "LESS_THAN", "Value": "1800", "TargetColumn": "white_rating" } ] }, { "Action": { "Operation": "GROUP_BY", "Parameters": { "groupByAggFunctionOptions": "[{\"sourceColumnName\":\"winner\",\"targetColumnName\":\"winner_count\",\"targetColumnDataType\":\"int\",\"functionName\":\"COUNT\"}]", "sourceColumns": "[\"winner\",\"victory_status\"]", "useNewDataFrame": "true" } } }, { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "winner" } }, "ConditionExpressions": [ { "Condition": "IS", "Value": "[\"draw\"]", "TargetColumn": "winner" } ] }, { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "mate", "sourceColumn": "victory_status", "value": "checkmate" } } }, { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "resign", "sourceColumn": "victory_status", "value": "other player resigned" } } }, { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "outoftime", "sourceColumn": "victory_status", "value": "ran out of time" } } } ]

Las acciones se realizan de forma secuencial, en el mismo orden que en el archivo:

  • REMOVE_VALUES— Para filtrar todas las partidas en las que la puntuación de un jugador es inferior a 1800, la puntuación mínima requerida para ser un jugador de ajedrez de clase A. Esta acción se puede realizar en dos ocasiones: una para eliminar a los jugadores del lado negro que no sean al menos de clase A, y otra para eliminar a los jugadores del lado blanco que no estén en este nivel.

  • GROUP_BY— Para resumir los datos. En este caso, GROUP_BY ordena las filas en grupos en función de los valores de winner (blacky). white A continuación, cada uno de esos grupos se desglosa aún más y las filas se clasifican en subgrupos según los valores de victory_status (mate, resignoutoftime, y). draw Por último, se cuenta el número de apariciones de cada subgrupo. A continuación, el resumen resultante reemplaza la muestra de datos original.

  • REMOVE_VALUES— Eliminar los resultados de las partidas que terminaron condraw.

  • REPLACE_TEXT— Para modificar los valores devictory_status. Esta acción se repite en tres ocasiones: una paramate, resign y una para cada una. oufoftime

En una sesión de DataBrew proyecto interactiva, cada una RecipeAction corresponde a una transformación de datos que se aplica a una muestra de datos.

DataBrew proporciona más de 200 acciones de recetas. Para obtener más información, consulte Referencia de pasos y funciones de la receta.

Uso de condiciones

Puedes usar condiciones para limitar el alcance de una acción de receta. Las condiciones se utilizan en las transformaciones que filtran los datos, por ejemplo, al eliminar filas no deseadas en función de un valor de columna concreto.

Echemos un vistazo más de cerca a las acciones de una receta. chess-project-recipe

{ "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "black_rating" } }, "ConditionExpressions": [ { "Condition": "LESS_THAN", "Value": "1800", "TargetColumn": "black_rating" } ] }

Esta transformación lee los valores de la black_rating columna. La ConditionExpressions lista determina los criterios de filtrado: cualquier fila que tenga un black_rating valor inferior a 1800 se elimina del conjunto de datos.

Una transformación de seguimiento en la receta hace lo mismo, parawhite_rating. De esta forma, los datos se limitan a los juegos en los que cada jugador (blanco o negro) tiene una calificación de clase A o superior.

Este es otro ejemplo de una condición, que se aplica a una columna de datos de personajes.

{ "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "winner" } }, "ConditionExpressions": [ { "Condition": "IS", "Value": "[\"draw\"]", "TargetColumn": "winner" } ] }

Esta transformación lee los valores de la winner columna, busca el valor draw y elimina esas filas. De esta forma, los datos se limitan únicamente a aquellos juegos en los que hubo un claro ganador.

DataBrew admite las siguientes condiciones:

  • IS— El valor de la columna es el mismo que el valor que se proporcionó en la condición.

  • IS_NOT— El valor de la columna no es el mismo que el valor que se proporcionó en la condición.

  • IS_BETWEEN— El valor de la columna se encuentra entre los LESS_THAN_EQUAL parámetros GREATER_THAN_EQUAL y.

  • CONTAINS— El valor de cadena de la columna contiene el valor que se proporcionó en la condición.

  • NOT_CONTAINS— El valor de la columna no contiene la cadena de caracteres que se proporcionó en la condición.

  • STARTS_WITH— El valor de la columna comienza con la cadena de caracteres que se proporcionó en la condición.

  • NOT_STARTS_WITH— El valor de la columna no comienza con la cadena de caracteres que se proporcionó en la condición.

  • ENDS_WITH— El valor de la columna termina con la cadena de caracteres que se proporcionó en la condición.

  • NOT_ENDS_WITH— El valor de la columna no termina con la cadena de caracteres que se proporcionó en la condición.

  • LESS_THAN— El valor de la columna es inferior al valor que se proporcionó en la condición.

  • LESS_THAN_EQUAL— El valor de la columna es inferior o igual al valor que se proporcionó en la condición.

  • GREATER_THAN— El valor de la columna es superior al valor que se proporcionó en la condición.

  • GREATER_THAN_EQUAL— El valor de la columna es mayor o igual al valor que se proporcionó en la condición.

  • IS_INVALID— El valor de la columna tiene un tipo de datos incorrecto.

  • IS_MISSING— No hay ningún valor en la columna.