def get_glue_content() -> GlueContext: """ Init GlueContext and SparkSession :return: GlueContext """ spark_session = SparkContext.getOrCreate() glueContent = GlueContext(spark_session) glueContent.spark_session.builder \ .config("spark.databricks.hive.metastore.glueCatalog.enabled", "true") \ .config("spark.sql.catalogImplementation", "hive") \ .config("hive.metastore.client.factory.class", "com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory") \ .config("spark.sql.legacy.parquet.int96RebaseModeInRead", "CORRECTED") \ .config("spark.sql.legacy.parquet.int96RebaseModeInWrite", "CORRECTED") \ .config("spark.sql.legacy.parquet.datetimeRebaseModeInRead", "CORRECTED") \ .config("spark.sql.legacy.timeParserPolicy", "LEGACY") \ .enableHiveSupport().getOrCreate() return glueContent
时间: 2024-04-25 17:27:23 浏览: 232
这段代码是用来初始化GlueContext和SparkSession的,GlueContext是AWS Glue提供的一个Python库,用于在Spark中使用ETL作业。该函数主要做以下几件事情:
1. 获取或创建一个SparkSession。
2. 创建一个GlueContext对象,它将与SparkSession一起使用。
3. 配置SparkSession,以便使用AWS Glue数据目录。
4. 启用Hive支持,允许在Spark中使用Hive元数据。
5. 最后返回GlueContext对象,以便在后续的代码中使用。
相关问题
def __init__(self, glueContext: GlueContext, config: argparse.Namespace): """ init function. :param glueContext: the glueContext. the spark session can get from glueContext. :param config: Obtained by parsing from the Glue Job Input parameter list. """ self.config = config self.logger = logging.getLogger(self.config.table_full_name) self.logger.info(f'job init with params: {vars(self.config)}') self.glueContext = glueContext self.spark = glueContext.spark_session self.table_schema = Custom_Schema(self.spark).get_schema(self.config.source_file_schema) self.source_df_count = 0 self.destination_df_count = 0 self.load_date = datetime.now() self.logger.info(f'job load date: {self.load_date}') self.database_name, self.table_name = self.config.table_full_name.split('.') self.set_spark_configs()
这是一个Python类的初始化函数,它接受两个参数:glueContext和config。其中,glueContext是Glue的上下文,可以从中获取Spark会话,而config则是从Glue作业的输入参数列表中解析得到的命名空间。在初始化函数中,将这两个参数分别赋值给实例变量self.glueContext和self.config,并且设置了一些其他的实例变量,比如self.logger、self.spark、self.table_schema等。最后,调用了self.set_spark_configs()方法。可以看到,这个类是用来处理一些数据加载和转换的任务的,具体实现需要看其他方法的实现。
行 1413: 06-01 06:11:59.685 402 1639 D hh_pcl : <_wakelock_nfy_fct:23> _wakelock_nfy_fct 行 1414: 06-01 06:11:59.685 402 1639 D hh_pcl : <_wakelock_nfy_fct:27> _wakelock_nfy_fct 行 1415: 06-01 06:11:59.685 402 1639 D hh_pcl : <_wakelock_nfy_fct:37> acquiring wakelock SETUPALARM 行 1416: 06-01 06:12:00.539 0 0 W [GLUE]_MTGPDWNC_RequestSuspendEvent[3204]: u4SuspendEn=0x80100, u4SuspendEvent=0x4 . 行 1452: 06-01 06:12:00.678 0 0 W : [GLUE] __Glue_PM_SuspendClearFlag done 行 1454: 06-01 06:12:00.684 0 0 W : __Glue_PM_EWBSWakeunlock 行 1470: 06-01 06:12:00.897 0 0 W : [GLUE][IR]bInvertBlockKey = 0. 行 1471: 06-01 06:12:00.901 0 0 W : [GLUE][IR]bEnableBlockKey = 0. 行 1477: 06-01 06:12:00.923 0 0 I twoworld power: queue early_suspend_work end and release twoworlds_power_ws wake lock
这是一组来自Android系统的日志,其中包含了多个模块的信息。具体来说:
- 第1413行和1414行:来自hh_pcl模块的日志,表示_wakelock_nfy_fct函数被调用。
- 第1415行:来自hh_pcl模块的日志,表示正在获取名为SETUPALARM的唤醒锁。
- 第1416行:来自GLUE模块的日志,表示请求挂起事件,并且设置了一些参数。
- 第1452行:来自GLUE模块的日志,表示清除了挂起标志。
- 第1454行:表示释放了唤醒锁。
- 第1470行和1471行:来自GLUE模块的日志,表示红外模块中的一些设置。
- 第1477行:表示结束了一项工作,并释放了twoworlds_power_ws唤醒锁。
这些日志都是系统或应用程序在执行一些操作时生成的。
阅读全文