代码示例Notional data generation变换

注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。

变换

Python

虚拟数据生成

如何在变换中创建虚假数据?

此代码使用synthesizer库生成具有指定列和数据类型的随机数据集。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 from transforms.api import transform_df, Output, configure from synthesizer import DataFrameTransformOrchestrator import pyspark.sql.functions as F ''' Transform to generate data from scratch Think about importing "synthetizer" library ! ''' # 转换以从头生成数据 # 请考虑导入“synthetizer”库! ROW_SPEC = { "level_1": { "random_element": { "elements": list(range(0, 10)) # 从0到9的随机元素 } }, "level_2": { "random_element": { "elements": list(range(0, 20)) # 从0到19的随机元素 } }, "level_3": { "random_element": { "elements": list(range(0, 50)) # 从0到49的随机元素 } }, "level_4": { "random_element": { "elements": list(range(0, 100)) # 从0到99的随机元素 } }, "ThisIsFakeData": "first_name", # 生成的假数据:名 "First_Name": "first_name", # 生成的假数据:名 "Last_Name": "last_name", # 生成的假数据:姓 "Phone_Number": "phone_number", # 生成的假数据:电话号码 "Address_Contact": "address", # 生成的假数据:地址 "Birth_Date": { "date_time_between": { "start_date": "-80y", # 出生日期开始日期:80年前 "end_date": "-3m" # 出生日期结束日期:3个月前 } }, "Title": { "random_element": { "elements": ["Mr.", "Mrs.", "Ms.", "Dr."] # 随机称谓元素 } }, } @transform_df( Output("/Palantir/awesome-foundry/[PipelineMocking] Dataset Generation/generated_data"), ) def function_40(ctx): # Parameters ROW_COUNT = 10_000 # 数据行数 # Create a dataset generator # 创建数据集生成器 orch = DataFrameTransformOrchestrator( ROW_SPEC, ROW_COUNT, ctx.spark_session ) # Generate the dataset # 生成数据集 df = orch() # Create new columns, perform operations on it ... # 创建新列,对其进行操作... df = df.withColumn("pk", F.concat_ws("__", "level_1", "level_2", "level_3", "level_4")) # 组合四个级别生成主键列 return df
  • 提交日期: 2024-03-26
  • 标签: 代码编写, 代码存储库, 数据生成, 非结构化, 合成器