我目前正在使用PyODBC从SQL Server中提取数据并尝试以近实时(NRT)方式插入Hive中的表.
我从源代码获得了一行并转换为List [Strings]并以编程方式创建了schema,但在创建DataFrame时,Spark抛出了StructType错误.
>>> cnxn = pyodbc.connect(con_string)
>>> aj = cnxn.cursor()
>>>
>>> aj.execute("select * from tjob")
<pyodbc.Cursor object at 0x257b2d0>
>>> row = aj.fetchone()
>>> row
(1127, u'', u'8196660', u'', u'', 0, u'', u'', None, 35, None, 0, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, u'', 0, None, None)
>>> rowstr = map(str,row)
>>> rowstr
['1127', '', '8196660', '', '', '0', '', '', 'None', '35', …Run Code Online (Sandbox Code Playgroud) 我有一个如下的数据框。
a x 10
b x 11
c x 15
a y 16
b y 17
c y 19
a z 20
b z 21
c z 23
Run Code Online (Sandbox Code Playgroud)
我想将其转换如下:
x y z
a 10 16 20
b 11 17 21
c 15 19 23
Run Code Online (Sandbox Code Playgroud)
目前我正在将原始 DF 制作成多个数据帧(每个用于“a”、“b”和“c”),然后转置并合并回来。
我相信会有一个最佳解决方案。因此寻求帮助。
我是 Bokeh 的新手,需要一些帮助。我正在尝试根据其他下拉 2 框选择动态更改下拉 1 框值。我查看了散景示例,但找不到一个。这是我搞乱的代码。
source = ColumnDataSource(data=dict(server_list=["old_value_1", "old_value_2"]))
def update():
tech_val = tech.value
if tech_val == 'art':
source.data = dict(
server_list=["new_value_1", "new_value_2"]
)
# servers.update()
env = Select(title="Environment", value="PROD", options=["DEV", "QA", "PROD"])
tech = Select(title="Subject Area", value="science", options=["science", "art"])
servers = Select(title="Server", options=source.data['server_list'])
controls = [env, tech, servers]
for control in controls:
control.on_change('value', lambda attr, old, new: update())
sizing_mode = 'fixed'
inputs = widgetbox(*controls, sizing_mode=sizing_mode)
l = layout([[inputs]], sizing_mode=sizing_mode)
curdoc().add_root(l)
curdoc().title = "Sliders"
Run Code Online (Sandbox Code Playgroud)