Примерно через несколько дней испытаний я нашел решение, поэтому отвечу на свой вопрос. Мне удалось подключиться с помощью сервера WAMP (спасибо @Shubham Jain за предложение), а также без сервера WAMP. Этот ответ без сервера WAMP.
Загружено ngrok
из https://ngrok.com/,
Разархивировано это,
Сохранено это на моем локальном windows,
Подтвердить с помощью:
./ngrok authtoken xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(довольно простые инструкции доступны на веб-сайте)
Все еще на моем локальном Windows, я скопировал и запустил ngrok tcp 3306
в командной строке
C:\Users\userMe> ngrok tcp 3306
, и это дало что-то вроде:
ngrok by @inconshreveable
Session Status online
Account userMe (Plan: Free)
Version 2.3.35
Region United States (us)
Web Interface http://localhost:4041
Forwarding tcp://0.tcp.ngrok.io:17992 -> localhost:3306
Connections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
Где 0.tcp.ngrok.io:17992
- единственное, что меня интересует, а 3306
- это MySQL и единственный порт Я заинтересован в демонстрации inte rnet для связи с моим Google Colab.
Итак, в конце дня мое соединение PySpark READ будет выглядеть так:
jdbcDF = spark.read.format("jdbc")\
.option("url", "jdbc:mysql://0.tcp.ngrok.io:17992/mydb?user=testUser&password=pestpw")\
.option("dbtable", "pipeLineTable")\
.option("driver","com.mysql.cj.jdbc.Driver")\
.load();
Соединение WRITE будет:
jdbcDF.write.mode("overwrite")\
.format("jdbc")\
.option("url", f"jdbc:mysql://0.tcp.ngrok.io:17992/mydb")\
.option("dbtable", "fromGcTable")\
.option("user", "testUser")\
.option("password", "testpw")\
.option("driver","com.mysql.cj.jdbc.Driver")\
.save()
В обоих подключениях строки, обратите внимание на 0.tcp.ngrok.io:17992
, который заменяет localhost:3306