def METHOD_NAME(
    dataset: str,
    config: str,
    split: str,
    app_config: AppConfig,
) -> SplitFirstRowsFromParquetJobRunner:
    processing_step_name = SplitFirstRowsFromParquetJobRunner.get_job_type()
    processing_graph = ProcessingGraph(
        {
            "dataset-level": {"input_type": "dataset"},
            "config-level": {
                "input_type": "config",
                "triggered_by": "dataset-level",
                "provides_config_parquet_metadata": True,
            },
            processing_step_name: {
                "input_type": "dataset",
                "job_runner_version": SplitFirstRowsFromParquetJobRunner.get_job_runner_version(),
                "triggered_by": "config-level",
            },
        }
    )
    return SplitFirstRowsFromParquetJobRunner(
        job_info={
            "type": SplitFirstRowsFromParquetJobRunner.get_job_type(),
            "params": {
                "dataset": dataset,
                "revision": "revision",
                "config": config,
                "split": split,
            },
            "job_id": "job_id",
            "priority": Priority.NORMAL,
            "difficulty": 50,
        },
        app_config=app_config,
        processing_step=processing_graph.get_processing_step(processing_step_name),
        processing_graph=processing_graph,
        assets_directory=assets_directory,
        parquet_metadata_directory=parquet_metadata_directory,
    )