如何将已读取的字符串转换为数组列?即从下面的模式转换
scala> test.printSchema
root
|-- a: long (nullable = true)
|-- b: string (nullable = true)
+---+---+
| a| b|
+---+---+
| 1|2,3|
+---+---+
| 2|4,5|
+---+---+
Run Code Online (Sandbox Code Playgroud)
至:
scala> test1.printSchema
root
|-- a: long (nullable = true)
|-- b: array (nullable = true)
| |-- element: long (containsNull = true)
+---+-----+
| a| b |
+---+-----+
| 1|[2,3]|
+---+-----+
| 2|[4,5]|
+---+-----+
Run Code Online (Sandbox Code Playgroud)
如果可能的话,请分享scala和python实现.在相关的说明中,如何在从文件本身读取时处理它?我有大约450列的数据,其中很少我想用这种格式指定.目前我在pyspark阅读如下:
df = spark.read.format('com.databricks.spark.csv').options(
header='true', inferschema='true', delimiter='|').load(input_file)
Run Code Online (Sandbox Code Playgroud)
谢谢.
我希望将我的机器学习模型部署到生产中。我正在使用 API Gateway + Lambda 来触发 EC2 实例上的推理。推理需要一段时间(约 30 秒)。Lambda 超时设置为 2 分钟。
当我使用 Postman 或浏览器调用 HTTP API 时,我在 5 秒内收到 503 Service Unavailable 错误。在后端,我看到请求成功,并且成功响应被发送回 Lambda(大约 30 秒后)。我读到最大 API 网关超时为 30 秒。我想知道为什么我会在 5 秒后超时?
我按照此处给出的说明部署我的模型:https://francescopochetti.com/deploying-a-pretrained-gpt-2-model-on-aws/#Deploying_with_Lambda_EC2_and_DynamoDB
lambda 代码类似于此处给出的: https: //github.com/gabrielelanaro/ml-prototypes/blob/master/prototypes/styletransfer/huggingface/hugging_lambda.py。
如果有帮助,您可以使用以下 URL 调用 API:https://eekq9x0azg.execute-api.ap-south-1.amazonaws.com/gpt2 ?prompt=%20%22Nikhil%22&num_samples=3&length=60&Temperature=0.7&top_p =0.9&top_k=40
Lambda 登录 Cloudwatch:
2020-03-18T09:56:51.520+05:30 START 请求 ID:59129756-d233-4bd5-8059-4087bd9f47e3 版本:$LATEST
2020-03-18T09:56:51.524+05:30
事件
2020-03-18T09:56:51.704+05:30 ['cd /home/ubuntu', 'shutdown -h +15', 'sudo -i -u ubuntu bash <<-EOF', 'source ~/.bashrc ', '源 env/bin/activate', 'python3 gpt2-tweets.py --prompt=""Nikhil"" --dynamoid=189377 --num_samples=3 …
Ours是一个运行Linux的基于PowerPC的嵌入式系统.我们遇到了一个随机的SIGILL崩溃,可以看到各种各样的应用程序.崩溃的根本原因是将要执行的指令归零.这表示驻留在内存中的文本段损坏.由于文本段以只读方式加载,因此应用程序无法破坏它.所以我怀疑一些常见的子系统(DMA?)导致这种腐败.由于问题需要数天才能重现(由于SIGILL而崩溃),因此很难进行调查.首先,我希望能够知道任何应用程序的文本段是否以及何时被破坏.我查看了堆栈跟踪和所有指针,寄存器是正确的.
你们有什么建议我怎么办?
一些信息:
Linux 3.12.19-rt30#1 SMP Fri Mar 11 01:31:24 IST 2016 ppc64 GNU/Linux
(gdb)bt
0 xxx中的0x10457dc0
反汇编输出:
=> 0x10457dc0 <+80>:mr r1,r11
0x10457dc4 <+84>:blr
地址为0x10457dc0的
指令:0x7d615b78捕获SIGILL 0x10457dc0后的指令:0x00000000
(gdb)维护信息部分
0x10006c60-> 0x106cecac在0x00006c60:.text ALLOC LOAD READONLY CODE HAS_CONTENTS
预期(从应用程序二进制):
(GDB)的x/32 0x10457da0
0x10457da0:0x913e0000 0x4bff4f5d 0x397f0020 0x800b0004
0x10457db0:0x83abfff4 0x83cbfff8 0x7c0803a6 0x83ebfffc
0x10457dc0: 0x7d615b78 0x4e800020 0x7c7d1b78 0x7fc3f378
0x10457dd0:0x4bcd8be5 0x7fa3eb78 0x4857e109 0x9421fff0
实际(处理SIGILL并转储附近的内存位置后):
错误指令地址:0x10457dc0
0x10457da0:0x913E0000
0x10457db0:0x83ABFFF4
=> 0x10457dc0:0x00000000
0x10457dd0:0x4BCD8BE5
0x10457de0:0x93E1000C
编辑:
我们的一个主要原因是损坏始终发生在以0xdc0结尾的偏移处.
例如Faulting
指令地址:0x10653dc0 <<我们的应用程序在捕获SIGILL Faulting
指令地址后打印:0x1000ddc0 <<我们的应用程序在捕获SIGILL flash_erase后 …
我正在使用以下命令将RDD写入文件:
rdd.coalesce(1).saveAsTextFile(FilePath)
Run Code Online (Sandbox Code Playgroud)
当FilePath是HDFS路径(hdfs://node:9000/folder/
)时,一切正常.
当FilePath是本地路径(file:///home/user/folder/
)时,一切似乎都有效.输出文件夹已创建,SUCCESS
文件也存在.
但是,我没有看到任何part-00000
包含输出的文件.没有其他文件.火花控制台输出中也没有错误.
我也尝试在调用之前调用RDD上的collect saveAsTextFile()
,给出777 permission
输出文件夹,但没有任何工作.
请帮忙.
我需要一些关于应该采用哪种方法来进行日志分析解决方案的生产部署的建议。
我有一个本地 Elasticsearch 集群,我正在将其迁移到云(AWS 上的 EKS)。我是一个致力于此工作的人,因此我需要一些能够以最少的努力为我提供生产级部署的东西。
我已经能够部署bitnami/elasticsearch helm 图表,但不幸的是,它使用 OSS 版本,这意味着我必须自己添加很多其他功能。
官方弹性头盔图表是我尚未尝试过但应该可行的第二个选项。然而,在存储库中提到ECK是首选。
ECK 是最后一个选项,但我还没有看到任何可用于生产的示例部署文件。最好的可用方法是这需要一些工作。
那么,考虑到现在和将来最小的痛苦,我应该选择哪种最佳选择呢?另一个需要考虑的方面是许可。如果我们想将日志分析解决方案作为我们主要产品的附加组件提供,Elastic 基本许可证会妨碍我们吗?谢谢。
在pandas数据框中,对于每一行,我想只保留前N个值并将其他所有值设置为0.我可以遍历行并执行它但我相信python/pandas可以在一行中优雅地完成它.
例如:对于N = 2
Input:
A B C D
4 10 10 6
5 20 50 90
6 30 6 4
7 40 12 9
Output:
A B C D
0 10 10 0
0 0 50 90
6 30 6 0
0 40 12 0
Run Code Online (Sandbox Code Playgroud) 我正在使用 starlette ASGI 框架并想要呈现 HTML 响应。
使用下面的虚拟路由来测试将变量传递到 JavaScript 前端。
@app.route('/error')
async def server_error(request):
template = 'analyze_response.html'
context = {"request": request}
return templates.TemplateResponse(template, context, data=75)
Run Code Online (Sandbox Code Playgroud)
这是我的“analyze_response.html”文件:
<html lang='en'>
<head>
<meta charset='utf-8'>
<link rel='stylesheet' href='../static/style.css'>
<script src='../static/client.js'></script>
<link rel="stylesheet" href="../static/cmGauge.css">
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="../static/cmGauge.js"></script>
<script type="text/javascript">
var data = {{ data|tojson }}
</script>
<script type="text/javascript" src="app.js"></script>
</head>
<body>
<div>
<div class='center'>
<div class='title'>Sentiment Analysis of Movie Reviews</div>
<div class='content'>
<form action="/analyze" class="form" method="post">
<div class="form-group">
<textarea rows = "10" cols = "100" …
Run Code Online (Sandbox Code Playgroud) 假设我有以下CSV数据:
col1,col2,col3,label
,1,2,label1
3,,4,label2
5,6,7,label3
Run Code Online (Sandbox Code Playgroud)
读取此数据并将col1和col2转换为int的最佳方法是什么?
我能够使用它并转换我的过滤数据帧,它只有数字列(col1,col2,col3).如何修改主数据框本身而忽略了作为字符串的标签列?
在相关的说明中,我也可以使用下面的命令.知道如何在循环中运行它,以便动态生成变量名col%d,因为我有32列.
filter_df.col1 = filter_df.col1.fillna(0).astype(int)
Run Code Online (Sandbox Code Playgroud) python ×3
apache-spark ×2
pandas ×2
aws-lambda ×1
c ×1
c++ ×1
hadoop ×1
jinja2 ×1
linux ×1
linux-kernel ×1
pyspark ×1
scala ×1
starlette ×1