code: def open_text(path: str) -> List[str]:
      """
  
      Read a text file to list of lines. It supports local, hdfs, s3 file systems.
  
      :param path: text file path
      :return: list of lines
      """
      # Return a list of lines
      if path.startswith("hdfs"):  # hdfs://url:port/file_path
          import pyarrow as pa
  
          fs = pa.hdfs.connect()
          with fs.open(path, "rb") as f:
              lines = f.read().decode("utf-8").strip().split("\n")
      elif path.startswith("s3"):  # s3://bucket/file_path
          access_key_id = os.environ["AWS_ACCESS_KEY_ID"]
          secret_access_key = os.environ["AWS_SECRET_ACCESS_KEY"]
          import boto3
  
          s3_client = boto3.Session(
              aws_access_key_id=access_key_id,
              aws_secret_access_key=secret_access_key,
          ).client("s3")
          path_parts = path.split("://")[1].split("/")
          bucket = path_parts.pop(0)
          key = "/".join(path_parts)
          data = s3_client.get_object(Bucket=bucket, Key=key)
          lines = (
              data["Body"].read().decode("utf-8").strip().split("\n")
          )
      else:  # Local path
          if path.startswith("file://"):
              path = path[len("file://") :]
          lines = []
          with open(path) as f:
              for line in f:
                  lines.append(line)
      return [line.strip() for line in lines]
  
imports: import os
  import subprocess
  import logging
  import shutil
  import functools
  import glob
  from distutils.dir_util import copy_tree
  from bigdl.dllib.utils.log4Error import invalidOperationError
  from bigdl.dllib.utils import file_utils
  from typing import TYPE_CHECKING, List, Callable, Union, Optional
label_desc: Use image node_id 1 for calling a global function with example usage: open_text(path) and returns: unknown