标签: custom-function

Spark Scala - 如何对数据帧行进行分组并将复杂功能应用于组?

我正在努力解决这个超级简单的问题,我已经厌倦了,我希望有人可以帮我解决这个问题.我有一个像这样的形状的数据框:

---------------------------
|  Category  | Product_ID |
|------------+------------+
| a          | product 1  |
| a          | product 2  |
| a          | product 3  |
| a          | product 1  |
| a          | product 4  |
| b          | product 5  |
| b          | product 6  |
---------------------------

如何按类别对这些行进行分组并在Scala中应用复杂的功能?也许是这样的:

val result = df.groupBy("Category").apply(myComplexFunction)
Run Code Online (Sandbox Code Playgroud)

这个myComplexFunction应该为每个类别生成下表,并上传成Hive表中的成对相似性或将其保存到HDFS中:


+--------------------------------------------------+
|              | Product_1 | Product_2 | Product_3 |
+------------+------------+------------------------+
| Product_1    | 1.0       | 0.1       |    0.8    |
| Product_2    | 0.1 …

parallel-processing aggregate-functions dataframe apache-spark custom-function

4
推荐指数
1
解决办法
3303
查看次数

要超过Google Spreadsheet上的ImportXML限制

我现在正在坚持"刮擦问题".特别是我想从网页中提取作者姓名到谷歌电子表格.实际上这个功能=IMPORTXML(A2,"//span[@class='author vcard meta-item']")正在运行,但是在我提高链接数量之后它才开始加载无穷无尽.

所以我研究并发现,这个问题是由于谷歌有一个限制的事实.

有没有人知道超出限制或脚本,我可以"轻松复制"? - 我真的没有编码的预感.

javascript google-sheets web-scraping google-apps-script custom-function

3
推荐指数
2
解决办法
7100
查看次数

根据十六进制值设置单元格的背景颜色

我想根据另一个单元格中的十六进制值将背景颜色设置为一个单元格。到目前为止我所做的:

function setColorHEX(hex) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var cell = ss.getActiveCell();
  cell.setBackground(hex);
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有人知道我做错了什么吗?

google-sheets google-apps-script custom-function google-sheets-formula

3
推荐指数
1
解决办法
1万
查看次数

如何在Google Apps脚本自定义函数中获取“活动用户”的用户属性

我发布了一个 Google Apps 脚本独立电子表格插件,但在使用PropertiesService.getUserProperties()自定义函数时遇到了一些问题。

如果用户 A 安装了该附加组件并在用户属性中保存了一些数据。然后用户A将电子表格共享给用户B。当用户B运行自定义函数时,他可以获取用户A的用户属性中保存的数据。这不是我认为用户属性的工作原理。用户 A 和 B 都应该获得自己保存的数据。

那么共享电子表格的活跃用户是什么?我不希望所有电子表格查看者都获取电子表格创建者保存的数据。我在代码或“云平台项目”选项中做错了什么吗?

换句话说,如何在共享电子表格中为不同查看者获取保存在用户属性中的不同数据?

我尝试在自定义函数中获取活动用户电子邮件,但它不起作用。

请注意,我无法Session.getActiveUser在自定义函数中使用,因为Google Apps脚本自定义函数不支持会话服务。它将得到无效权限异常。

https://developers.google.com/apps-script/guides/sheets/functions#Advanced

谢谢,

google-apps google-apps-script google-apps-marketplace custom-function google-apps-script-addon

3
推荐指数
1
解决办法
1252
查看次数

在 keras 回调中使用带有自定义参数的自定义函数

我正在 keras 中训练模型,我想在每个时期之后绘制结果图。我知道 keras 回调提供了“on_epoch_end”函数,如果人们想在每个 epoch 之后进行一些计算,则可以重载该函数,但是我的函数需要一些额外的参数,当给定这些参数时,元类错误会导致代码崩溃。详情如下:

这是我现在的做法,效果很好:-

class NewCallback(Callback):

def on_epoch_end(self, epoch, logs={}):  #working fine, printing epoch after each epoch
    print("EPOCH IS: "+str(epoch))


epochs=5
batch_size = 16
model_saved=False
if model_saved:
    vae.load_weights(args.weights)
else:
    # train the autoencoder
    vae.fit(x_train,
            epochs=epochs,
            batch_size=batch_size,
            validation_data=(x_test, None),
           callbacks=[NewCallback()])
Run Code Online (Sandbox Code Playgroud)

但我希望我的回调函数是这样的:-

class NewCallback(Callback,models,data,batch_size):
   def on_epoch_end(self, epoch, logs={}):
     print("EPOCH IS: "+str(epoch))
     x=models.predict(data)
     plt.plot(x)
     plt.savefig(epoch+".png")
Run Code Online (Sandbox Code Playgroud)

如果我这样称呼它合适:

callbacks=[NewCallback(models, data, batch_size=batch_size)]
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all …
Run Code Online (Sandbox Code Playgroud)

metaclass callback keras custom-function

3
推荐指数
1
解决办法
1569
查看次数

如何从自定义函数中调用 Google 表格公式?

是否可以从您自己的 Google Apps 脚本自定义函数中调用任何Google 表格公式?如果是这样,怎么办?

显然,像在工作表中那样仅使用公式名称是行不通的。像这样,这就是我希望能起作用的:

function myCustomFunction() {
  return TDIST(1,30,1); // calling =myCustomFunction() does not work due to TDIST giving a ReferenceError, even though =TDIST(1,30,1) works inside the spreadsheet
}
Run Code Online (Sandbox Code Playgroud)

但由于 Google 的内置公式可能依赖于一些 JS 实现的函数,如果没有 API 以便我们可以轻松地重用这些函数,那就奇怪了。我查看了Google Sheets API 参考,但它似乎是为从外部服务调用自定义函数而设计的。看来你可以通过这样的POST请求来调用Google自己的公式。但这似乎非常麻烦,因为您应该能够直接从与特定 Google Sheet 环境相关的自定义脚本中引用它们。如果没有,那么从自定义函数中使用这些内置公式函数的最简单的方法是什么?

google-sheets google-apps-script custom-function google-sheets-formula

3
推荐指数
1
解决办法
950
查看次数

超过最大执行时间(第 0 行)

错误信息

我有一个来自工具的 .tsv 文件,我必须将其导入 Google Sheet(几乎)实时报告。这是我的导入代码:

function importBigTSV(url) {return Utilities.parseCsv(UrlFetchApp.fetch(url).getContentText(),'\t');}
Run Code Online (Sandbox Code Playgroud)

直到几天前,当错误消息一直说“超出最大执行时间(第 0 行)”时,它仍然有效。

有人可以帮忙吗?非常感谢!

google-sheets urlfetch google-apps-script custom-function

3
推荐指数
1
解决办法
3689
查看次数

不允许通过自定义函数执行sendEmail(),但在脚本编辑器中可以执行

我一直在尝试寻找一种方法,将单行数据发送到我在域中使用的“实时/运行”电子表格中的特定电子邮件地址,以跟踪卡车司机及其接送号码。我使用表格中提供的Google Apps脚本编辑器将这部分代码拼凑而成:

function sendEmail()
{
   var sheet = SpreadsheetApp.getActiveSheet();
   var activeRow = sheet.getActiveCell().getRow();
   var cellID = "H" + activeRow;    
   var dataRange = sheet.getRange(activeRow, 1, 1, 6);
   var EMAIL_SENT = "EMAIL_SENT";
   var data = dataRange.getValues();
   Logger.log(data[0][0]);

   var emailAddress = usercellnum@carrier.net;
   var message = data;
   var subject = "CG-PU#";
   var emailSent = sheet.getRange(cellID).getValue();

   if (emailSent != "EMAIL_SENT")
   {
     MailApp.sendEmail(emailAddress, subject, message);
     var cell = sheet.getRange(cellID);
     cell.setValue(EMAIL_SENT);
   }
  }
SpreadsheetApp.flush();  
}
Run Code Online (Sandbox Code Playgroud)

我可以从电子表格中的某个单元格调用该函数的任何方式,例如=sendEmail(),它应该仅从活动行发送信息,然后将该行标记为,EMAIL_SENT这样我就不会意外地这样做。

如果我从脚本编辑器内部运行该脚本,并且对电子邮件地址进行硬编码,则该脚本运行完美,但是如果尝试从电子表格本身运行,则会收到消息->错误:您无权调用sendEmail(第19行,文件“ CPS_sendEmail.gs”)。

非常感谢您的协助!这将有助于防止我的用户再次运行MS Excel和Outlook。当这部分工作时,如果可以让该功能显示用户可以选择的地址列表,或者使用户不必记住并键入驱动程序地址和运营商,但我希望它能按预期运行。

该脚本只能(应该)与用户一起在我的Google Domain中运行,并且是我第一次执行该脚本-我确定我已经完成了授权过程,但是并没有真正理解这部分内容。

他们当前正在使用MS …

google-sheets google-apps-script custom-function

2
推荐指数
1
解决办法
3296
查看次数

使用范围使用自定义排序功能对元组进行排序?

我想根据最后两列对元组列表进行排序:

mylist = [(33, 36, 84), 
          (34, 37, 656), 
          (23, 38, 42)]
Run Code Online (Sandbox Code Playgroud)

我知道我可以这样做:

final = sorted(mylist, key:lambda x: [ x[1], x[2]])
Run Code Online (Sandbox Code Playgroud)

现在我的问题是我想要将列表的第二列与特殊条件进行比较:如果两个数字之间的差异小于偏移量,则应将它们视为相等(36 == 37 == 38)和第三列应该用于对列表进行排序.我希望看到的最终结果是:

mylist = [(23, 38, 42)
          (33, 36, 84), 
          (34, 37, 656)]
Run Code Online (Sandbox Code Playgroud)

我在考虑创建自己的整数类型并覆盖等于运算符.这可能吗?这有点难过吗?有没有更好的方法来解决这个问题?

python sorting tuples custom-function

2
推荐指数
1
解决办法
675
查看次数

调用 SpreadsheetApp.OpenById() 的权限

问题是,我需要从外部电子表格中读取注释,所以最近我搜索并找到了这个答案:获取单元格注释值,但它不适用于外部电子表格,我尝试了很多方法,但没有任何效果,有人可以帮助我吗?

表 A - 示例

表 A - 示例

表 B - 获取值 (ImportRange) - 请求

表 B - 获取值 (ImportRange) - 请求

表 B - 获取值 (ImportRange) - 返回

表 B - 获取值 (ImportRange) - 返回

表 B - 获取注释(自定义脚本) - 请求失败

表 B - 获取注释(自定义脚本) - 请求失败

function getNote2(cell, token)
{
   var ss = SpreadsheetApp.openById(token)
   var range = ss.getRange(cell)
   return range.getNote();
}
Run Code Online (Sandbox Code Playgroud)

google-sheets google-apps-script custom-function

1
推荐指数
1
解决办法
1727
查看次数