Вы можете выполнить любой код Java, Scala, Python или R в своих приложениях Spark и, следовательно, можете использовать любую из распространенных библиотек SMB, доступных для этих языков.
Например, следующие Фрагмент Python, использующий библиотеку pysmb, также будет работать в Spark:
from smb.SMBConnection import SMBConnection
username = "..."
password = "..."
client_name = "..."
server_name = "..."
server_ip = "..."
share_name = "..."
conn = SMBConnection(username, password, client_name, server_name, use_ntlm_v2 = True)
assert conn.connect(server_ip, 139)
for f in conn.listPath(share_name, "."):
print(f.filename)
Код будет выполняться непосредственно в драйвере, поэтому вы не можете использовать этот подход для больших объемов данных, но для меньшего files это вполне жизнеспособный вариант. Вы можете сначала прочитать файлы в памяти драйвера, а затем распараллелить их, чтобы их можно было объединить с другими наборами данных.