Enqueuing an ingest command from local files.
        :param pandas.DataFrame df: input dataframe to ingest.
        :param azure.kusto.ingest.IngestionProperties ingestion_properties: Ingestion properties.

def ingest_from_dataframe(self, df, ingestion_properties):
        """Enqueuing an ingest command from local files.
        :param pandas.DataFrame df: input dataframe to ingest.
        :param azure.kusto.ingest.IngestionProperties ingestion_properties: Ingestion properties.
        
        """

        from pandas import DataFrame

        if not isinstance(df, DataFrame):
            raise ValueError("Expected DataFrame instance, found {}".format(type(df)))

        file_name = "df_{timestamp}_{pid}.csv.gz".format(timestamp=int(time.time()), pid=os.getpid())
        temp_file_path = os.path.join(tempfile.gettempdir(), file_name)

        df.to_csv(temp_file_path, index=False, encoding="utf-8", header=False, compression="gzip")

        fd = FileDescriptor(temp_file_path)

        blob_name = "{db}__{table}__{guid}__{file}".format(
            db=ingestion_properties.database, table=ingestion_properties.table, guid=uuid.uuid4(), file=file_name
        )

        containers = self._resource_manager.get_containers()
        container_details = random.choice(containers)
        storage_client = CloudStorageAccount(container_details.storage_account_name, sas_token=container_details.sas)
        blob_service = storage_client.create_block_blob_service()

        blob_service.create_blob_from_path(
            container_name=container_details.object_name, blob_name=blob_name, file_path=temp_file_path
        )

        url = blob_service.make_blob_url(container_details.object_name, blob_name, sas_token=container_details.sas)

        self.ingest_from_blob(BlobDescriptor(url, fd.size), ingestion_properties=ingestion_properties)

        fd.delete_files()
        os.unlink(temp_file_path)