繁体   English   中英

从ubuntu虚拟机(virtualbox)从本地sql-server读取表

[英]Read table from local sql-server from an ubuntu virtual machine (virtualbox)

我在使用Windows 10作为主机操作系统的计算机上,并且具有使用virtualbox安装的Ubuntu 16.04虚拟机。 我也有在Windows上运行的SQL Server,并在我的虚拟机(Ubuntu)上安装了spark-2.1.1-bin-hadoop2.7。

在Windows计算机上,我可以使用以下代码使用熊猫从服务器读取表:

import pandas as pd
import numpy as np
import pandas.io.sql
import pyodbc

# Parameters
server = 'localhost'
db = 'Claro'

# Create the connection
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=' + server + ';DATABASE=' + db + ';Trusted_Connection=yes')

# query db
sql = """

SELECT *
  FROM [Claro].[dbo].[TMP_FRD_CTV_TOTAL]

"""
# Excute Query here
df = pd.read_sql(sql, conn, chunksize=10000) 

我想知道是否可以使用虚拟机中的pyspark从我的SQL Server中读取相同的表。 如果可能,我该怎么办?

非常感谢!

罗德里戈。

是的,但是它不会像代码中那样来自本地主机,您需要更改为它的公共IP地址(可以在Google上获取它,只需搜索找到我的IP或类似的名称即可),就像您连接到远程数据库服务。

尽管VM在同一台计算机上运行,​​但资源完全隔离

好吧,我做到了。 我使用的代码如下:

# Import libraries
import findspark
findspark.init('/home/rodrigo/spark-2.1.1-bin-hadoop2.7')
import pyspark
from pyspark.sql import SparkSession

# Create a spark session
spark = SparkSession.builder.appName("Basics").getOrCreate()

# Read data
df = spark.read.format("jdbc").option("url", "jdbc:sqlserver://10.0.2.2:1433")\
        .option("dbtable", "[Claro].[dbo].[TMP_FRD_CTV_TOTAL]")\
        .option("user", "spark").option("password", "1234").load()

感谢您的帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM